使用EnhancedLegendRenderer打开和关闭系列时,使用新值删除系列和重新绘制

时间:2012-10-29 19:57:10

标签: javascript jquery jqplot

假设你有一张带有图片所示系列的折线图。当您使用EnhancedLegendRenderer打开和关闭系列时,系列会在隐藏和可见之间切换。这就是应该如何。但事实上,我希望系列保持可见的比例,以便具有最高y值的系列将位于图表的顶部,同时调整y轴上的值。下图显示了当我将具有最高值的系列切换为隐藏时的外观。

这样做有简单或先进的方法吗?我试图从图表中完全删除系列,从数据中删除它,并创建一个新的jqplot。但那时它在传奇中也不可见。还尝试了使用chart.series [i] .show = false的不同方法; chart.replot();等,但结果相同。

Plot image http://i45.tinypic.com/52mn8m.png Plot image http://i48.tinypic.com/vp9ker.png

2 个答案:

答案 0 :(得分:5)

还有一个可以使用的无证件的renderOption也可以这样做:

seriesToggleReplot: { resetAxes: true }

所以我的传奇看起来像这样:

legend: {
    show: true,
    renderer: $.jqplot.EnhancedLegendRenderer,
    rendererOptions:{
        seriesToggleReplot: { resetAxes: true }
    },
    placement: 'outside'
}

答案 1 :(得分:0)

没有为此找到任何真正的内置解决方案,所以我创建了自己的解决方案。

通过将所选系列的每个y值从图例设置为“0”,再设置为chart.replot(),图表将重新绘制剩余的系列值。

var j = //index of chosen serie.
for(var i = 0;i < chart.series[j].data.length ;i++)
    {
      chart.series[j].data[i][1] = 0
      //1 is the index of the y-value.
    }