是否可以以编程方式更改 HighCharts 图表的轴标题?
我正在尝试做这样的事情:
charts.series[0].yAxis.title.text = 'new title';
或者
charts.yAxis[0].title.text = 'new title';
(在图表初始化时已经设置了标题)。
是否可以以编程方式更改 HighCharts 图表的轴标题?
我正在尝试做这样的事情:
charts.series[0].yAxis.title.text = 'new title';
或者
charts.yAxis[0].title.text = 'new title';
(在图表初始化时已经设置了标题)。
是的,您可以使用以下方法执行此操作:
chart.yAxis[0].axisTitle.attr({
text: 'new title'
});
这可以直接在使用now的Axis
对象上完成。setTitle
例如:
chart.yAxis[0].setTitle({ text: "Bananas" });
请参阅此 JSFiddle 演示。方法签名是:
setTitle(Object title, [Boolean redraw])
因此,您可以选择传递一个布尔值以等待重绘。该title
对象采用与xAxis.title
您可以传入样式和其他几个选项以及文本本身相同的参数。API 文档有完整的信息。
我无法让上述任何一个工作,也许自去年以来情况发生了变化......我最终使用了:
chart.yAxis[0].update({
title:{
text: "new title"
}
});
它工作得很好......
上面的答案还有一个问题。使用导出模块从绘图创建的图像将显示原始标题,而不是更改后的标题。添加以下行进行修复:
chart.options.yAxis[0].title.text = 'new title';
我创建了一个演示小提琴来动态更改 y-axis title。参考这个JSFIDDLE
HTML:
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
<input type="button" value="Change Y-axis Title to 'My text'" id="my_btn">
JS(在单击按钮时更新 y 轴标题的 c 代码的一部分):
var chart = $('#container').highcharts();
$('#my_btn').click(function(){
//alert('hey');
chart.yAxis[0].update({
title:{
text:"My text"
}
});
alert('Y-axis title changed to "My text" !');
});
有关详细信息,请参阅Highcharts 的“更新”功能文档 。