我正在使用highcharts。我想制作一张如下图所示的图表。需要标记从系列1最高点绘制的线连接到系列2的点(如下图所示)。
能够实现这一点,但不完全是我想要的。您可以使用以下代码段:
(小提琴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;
编辑:我能够达到某种程度,正如Gaurav所回答的那样。检查here。
答案 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。希望它有所帮助