标记一个点并在Multi Series Highchart中绘制绘图线

时间:2018-02-13 09:57:38

标签: angular highcharts angular2-highcharts

我正在使用highcharts。我想制作一张如下图所示的图表。需要标记从系列1最高点绘制的线连接到系列2的点(如下图所示)。

无法找到任何有用的资源。任何线索将不胜感激。提前致谢。enter image description here

能够实现这一点,但不完全是我想要的。您可以使用以下代码段:

(小提琴link



Highcharts.chart('container', {
    xAxis: {
        plotLines: [{
            color: 'red',
            width: 2,
            value: Date.UTC(2010, 0, 4)
        }],
        tickInterval: 24 * 3600 * 1000, // one day
        type: 'datetime'
    },

    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4],
        pointStart: Date.UTC(2010, 0, 1),
        pointInterval: 24 * 3600 * 1000
    }, {
        data: [39.9, 91.5, 196.4, 159.2, 164.0, 180.0, 188.6, 187.5, 246.4],
        pointStart: Date.UTC(2010, 0, 1),
        pointInterval: 24 * 3600 * 1000
    }]
});

<script src="https://code.highcharts.com/highcharts.js"></script>

<div id="container" style="height: 400px"></div>
&#13;
&#13;
&#13;

编辑:我能够达到某种程度,正如Gaurav所回答的那样。检查here

1 个答案:

答案 0 :(得分:1)

如评论中所述,您可以使用Highcharts SVGRenderer类绘制一条线。您可以使用类似于Highcharts的加载事件,您可以在其中使用SVGRenderer来创建路径线。

chart: {
     events: {
        load: function () {
                console.log(this.chart); // This will get tou the chart reference where in you can find the coordinates of the point from where you want to draw the line
var x1 = this.series[0].data[this.series[0].data.length - 1].plotX + this.plotLeft;
var y1 = this.series[0].data[this.series[0].data.length - 1].plotY + this.plotTop;
            var label = this.renderer.path(['M', x1,y1,'L', 550, y1])//M 75 223.5 L 593 223.5
        .attr({
                'stroke-dasharray': '2,2',
            'stroke-width': 2,
            stroke: 'red'
        })
        .add();
        var label = this.renderer.path(['M', 550, this.plotTop + this.plotHeight,'L', 550, y1])//M 75 223.5 L 593 223.5
        .attr({
                'stroke-dasharray': '2,2',
            'stroke-width': 2,
            stroke: 'red'
        })
        .add();


        }
    }
}

x坐标550,我是随机选择的,但是如果你知道x点那么就是你的方式。这是新的小提琴link。希望它有所帮助