25

是否可以以编程方式更改 HighCharts 图表的轴标题?

我正在尝试做这样的事情:

charts.series[0].yAxis.title.text = 'new title';

或者

charts.yAxis[0].title.text = 'new title';

(在图表初始化时已经设置了标题)。

4

5 回答 5

34

是的,您可以使用以下方法执行此操作:

chart.yAxis[0].axisTitle.attr({
        text: 'new title'
    });

于 2011-05-04T11:05:38.057 回答
27

这可以直接在使用now的Axis对象上完成。setTitle例如:

chart.yAxis[0].setTitle({ text: "Bananas" });

请参阅此 JSFiddle 演示。方法签名是:

setTitle(Object title, [Boolean redraw])

因此,您可以选择传递一个布尔值以等待重绘。该title对象采用与xAxis.title您可以传入样式和其他几个选项以及文本本身相同的参数。API 文档有完整的信息。

于 2014-08-16T03:19:00.407 回答
14

我无法让上述任何一个工作,也许自去年以来情况发生了变化......我最终使用了:

chart.yAxis[0].update({
                title:{
                    text: "new title"
                }
            });

它工作得很好......

于 2014-01-30T02:42:40.267 回答
6

上面的答案还有一个问题。使用导出模块从绘图创建的图像将显示原始标题,而不是更改后的标题。添加以下行进行修复:

chart.options.yAxis[0].title.text = 'new title';
于 2013-01-29T21:17:56.747 回答
1

我创建了一个演示小提琴来动态更改 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 的“更新”功能文档

于 2014-07-01T04:34:36.877 回答