只有少数几个系列的情节

时间:2014-09-29 12:40:21

标签: flot points

我有一个包含5个系列数据的flot图表。每个系列都是一年,每个系列分为几个月。 Y轴是成本和X轴月。有时,在任何系列中的特定月份的数据中都存在用户消息。我想要做的是在任何特定系列上显示点,但仅当用户消息不为空时,例如,如果2012年6月的用户消息仅在该年度显示该月的点。这是可能的,因为目前我只能为每个完整的系列打开或关闭绘图点,即12个绘图点。

1 个答案:

答案 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>