HIGHCHARTS:Export can'上的事件;t访问x轴标签
我正在使用“渲染”事件更改x轴标签在highchart上的位置。它工作得很好-在日期时间x轴上的刻度之间居中标签并移除最后一个标签 使用相同的设置导出图表时,会调用该函数(请参见下面的centerTimelineLabels),但它无法访问渲染的x轴标签。请参阅下面的图片,这些图片显示了DOM中不同的x轴标签以及导出的PNG 请点击此处: 具体来说,HIGHCHARTS:Export can'上的事件;t访问x轴标签,highcharts,Highcharts,我正在使用“渲染”事件更改x轴标签在highchart上的位置。它工作得很好-在日期时间x轴上的刻度之间居中标签并移除最后一个标签 使用相同的设置导出图表时,会调用该函数(请参见下面的centerTimelineLabels),但它无法访问渲染的x轴标签。请参阅下面的图片,这些图片显示了DOM中不同的x轴标签以及导出的PNG 请点击此处: 具体来说,this.container在函数内部,是导出时的空包装器。。。没有孩子 导出时是否有方法访问和操作highchart中的x轴标签? expor
this.container
在函数内部,是导出时的空包装器。。。没有孩子
导出时是否有方法访问和操作highchart中的x轴标签?
exporting: {
chartOptions: { // specific options for the exported image
chart: {
backgroundColor: '#ffffff',
events: {
render: centerTimelineLabels
}
}
},
...
通过WEB校正X轴
通过导出的X轴不正确
谢谢您的演示 尝试使用此配置-请注意,每次重新绘制图表后都会触发渲染事件:
"events": {
render() {
let chart = this,
xAxis = chart.xAxis[0],
ticks = xAxis.ticks,
firstTick = ticks[xAxis.tickPositions[0]],
secondTick = ticks[xAxis.tickPositions[1]],
ticksDistance = secondTick.mark.getBBox().x - firstTick.mark.getBBox().x;
for (let i in ticks) {
let tick = ticks[i];
if (!tick.isLast) {
tick.label.translate(ticksDistance / 2, 0)
}
}
}
}
演示:
要隐藏最后一个标签,请将xAxis.showLastLabel
属性设置为false
API:你能在我可以使用的某个在线编辑器上复制你的案例吗?@SebastianWędzel我在上面添加了一个JSFIDLE的链接谢谢,效果很好!我注意到该解决方案还需要删除xAxis标签设置下的“useHTML”:true和“align”:“left”。
"events": {
render() {
let chart = this,
xAxis = chart.xAxis[0],
ticks = xAxis.ticks,
firstTick = ticks[xAxis.tickPositions[0]],
secondTick = ticks[xAxis.tickPositions[1]],
ticksDistance = secondTick.mark.getBBox().x - firstTick.mark.getBBox().x;
for (let i in ticks) {
let tick = ticks[i];
if (!tick.isLast) {
tick.label.translate(ticksDistance / 2, 0)
}
}
}
}