我有一个包含5个系列数据的flot图表。每个系列都是一年,每个系列分为几个月。 Y轴是成本和X轴月。有时,在任何系列中的特定月份的数据中都存在用户消息。我想要做的是在任何特定系列上显示点,但仅当用户消息不为空时,例如,如果2012年6月的用户消息仅在该年度显示该月的点。这是可能的,因为目前我只能为每个完整的系列打开或关闭绘图点,即12个绘图点。
答案 0 :(得分:1)
将您的数据拆分为两个单独的系列。
第一个是只显示线条的所有数据。
第二个只有“userMsg”的那些点,并且只显示点数。
将两个系列的颜色设置为相同的颜色。
var myData = [{point: [1,Math.random() * 100], userMsg: "One"},
{point: [2,Math.random() * 100]},
{point: [3,Math.random() * 100], userMsg: "Three"},
{point: [4,Math.random() * 100], userMsg: "Four"},
{point: [5,Math.random() * 100]}];
var series1 = {data: $.map(myData, function(i){return [i.point];}),
points: {show: false},
lines: {show: true},
color: 'rgb(255, 100, 123)'};
var series2 = {data: $.map(myData, function(i){if (i.userMsg) return [i.point];}),
points: {show: true, radius: 8},
lines: {show: false},
color: 'rgb(255, 100, 123)'};
somePlot = $.plot($("#placeholder"), [ series1, series2 ], {});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://www.flotcharts.org/flot/jquery.flot.js"></script>
<div id="placeholder" style="width:300px; height:300px"></div>