如何在Highcharts的图例中显示情节线?

时间:2015-09-18 18:30:30

标签: javascript jquery charts highcharts

我不仅希望我的传奇包含系列'名字,我也希望它包含我的其他项目的名称,如我的情节。这是我的代码:

function [L1,D1] = ldlt_update(L0,D0,z)

n = size(L0,1) ;
D1 = zeros(n,n) ;
L1 = zeros(n,n) ;

a = 1 ;
w = z ;
for jj = 1:n
    p = w(jj) ;
    D1(jj,jj) = D0(jj,jj) + a*p^2 ;
    b = p*a/D1(jj,jj) ;
    a = D0(jj,jj)*a/D1(jj,jj) ;
    for r = jj+1:n
        w(r) = w(r) - p*L0(r,jj) ;
        L1(r,jj) = L0(r,jj) + b*w(r) ;
    end
end
end

所以我希望我的情节名称是"平均速度偏差"看起来像在下面的传说框中。我怎样才能做到这一点?

his web site

2 个答案:

答案 0 :(得分:11)

您可以创建一个空系列,模仿绘图线的特征(颜色,破折号样式......)。然后,您可以选择使用legendItemClick事件来"将其链接起来"到情节线。

例如,您为ID和绘图线选项预定义了这些变量:

plotLineId = 'myPlotLine'; // To identify for removal

// Plot line options for adding
plotLineOptions = {
    color: '#FF0000',
    id: plotLineId, 
    width: 2,
    value: 5.5,
    dashStyle: 'shortdash'
};

你的轴线:

xAxis: {
    plotLines: [ plotLineOptions ]
}

你的模仿系列:

series: [
    // ...
    {
        // Series that mimics the plot line
        color: '#FF0000',
        name: 'My plotline',
        dashStyle: 'shortdash',
        marker: {
            enabled: false
        },
        events: {
            // Event for showing/hiding plot line
            legendItemClick: function(e) {
                if(this.visible) {
                    this.chart.xAxis[0].removePlotLine(plotLineId);
                }
                else {
                    this.chart.xAxis[0].addPlotLine(plotLineOptions);
                }
            }
        }
    }
]

请参阅this JSFiddle demonstration其工作原理(或this minimal example,无事件)。

答案 1 :(得分:7)

作为替代方案,如果你打算制作一个模仿你的情节线的所有方面的假系列......

您可以将该系列用作您的plotLine,并跳过将所有内容捆绑在一起的所有额外工作......

像:

{  
  name: 'Plot Line',
  color: 'red',
  type:'line',
  dashStyle: 'shortdash',
  lineWidth: 2,
  data: [[minXvalue, plotLineValue], {x:maxXvalue, y:plotLineValue, dataLabels: { enabled: true }}]
}

示例: