javascript - 样条图上的标记点绑定到 x 和 y 轴
问题描述
我有一个标记的样条图。
我想要的是两条虚线,一条从我的点到它的 x,一条从我的点到它的 y
我在 highchart api 中寻找解决方案或提示:https ://api.highcharts.com/highcharts/series.spline.data.marker
但我没有找到任何符合我期望的东西
我在 Fiddle 上的一个小例子: https ://jsfiddle.net/jdw9a8xg/1/
Highcharts.chart('container', {
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
plotOptions: {
series: {
}
},
series: [{
data: [{x: 1,y: 15, marker: {
radius: 8,
enabled: true
}}, {x:2, y: 150}, {x:3, y: 70}]
}]
});
谢谢
解决方案
您可以使用 SVGRenderer 工具来渲染这些线条。这是一个示例,如何为演示中的最大标记执行此操作:
https://jsfiddle.net/BlackLabel/hbjftaw6/
代码:
chart: {
events: {
render() {
let chart = this,
point = chart.series[0].points[0];
//if exist - destroy after the resize
if(point.xLine && point.yLine) {
point.xLine.destroy();
point.yLine.destroy();
}
point.xLine = chart.renderer.path(['M', chart.plotLeft, point.plotY + chart.plotTop,
'L', point.plotX + chart.plotLeft, point.plotY + chart.plotTop
])
.attr({
'stroke-width': 1,
stroke: 'red',
dashstyle: 'ShortDash'
})
.add();
point.yLine = chart.renderer.path(['M', chart.plotLeft + point.plotX, point.plotY + chart.plotTop,
'L', point.plotX + chart.plotLeft, chart.plotHeight + chart.plotTop
])
.attr({
'stroke-width': 1,
stroke: 'red',
dashstyle: 'ShortDash'
})
.add();
}
}
},
API:https ://api.highcharts.com/highcharts/series.line.dashStyle
API:https ://api.highcharts.com/class-reference/Highcharts.SVGRenderer#path
推荐阅读
- wsdl - 无法实例化部署程序 org.apache.axis2.deployment.ServiceDeployer 如何在soapclient 中解决此问题?
- smtp - 消息:stream_socket_enable_crypto():对等证书 CN=`some-address-here` 与预期的 CN=`127.0.0.1' 不匹配
- php - 从文件 pdf.p7m 中提取证书的 PHP 代码
- ios - Xcode:在 Xcode 故事板中自定义字体显示错误样式
- javascript - 如何使用带有 jquery ui 自动完成功能的搜索按钮?
- trigonometry - 将极坐标转换为笛卡尔点的最简单方法
- botframework - 刷新 Teams Bot 图标 + 名称
- express - 如何在 nginx proxy_pass 站点中启用链接文件?
- java - 通过 InetAddress API 进行的 DNS 查找未按预期工作
- php - 如何从php上的GET变量回显javascript编码的url