Highcharts动态更改标签?

5
3个回答

9

可以不使用标签,而是使用渲染器文本(),然后使用变量来保持对象。如果您需要动态更新此文本,则只需使用attr()函数进行更新。

http://jsfiddle.net/6GKCJ/2/

var title = chart.renderer.text('Total fruits consumption', 100, 90)
        .css({
            fontSize: '12px'
        })
        .add();

        $('#btn').click(function(){

            title.attr({
                text:'newText'
            });
        });

这正是我正在寻找的,感谢您提到这个。 - Chad Cache

2
如果您想在绘制后更改它,只需对元素本身进行操作。使用JQuery选择器就像这样简单:
// find me the tspan containing the specified text and change it to...
$("tspan:contains('Total fruit consumption')").text("Something New")

可能无法跨浏览器工作,特别是因为它依赖于SVG将被渲染的假设,但基于浏览器,Highchart可能会或可能不会输出SVG。 - Jugal Thakkar

1

截至Highcharts 3.0,Highchart没有提供任何方法来动态更新标签标题。虽然它确实提供了一个动态更新系列的方法:http://api.highcharts.com/highstock#Series.update()

要更新标签标题,我们需要采取一种蛮力的方法,即在更新图表选项后重新渲染图表。以下代码可以解决问题:

var mychart = $('#container').highcharts();
    mychart.options.labels.items[0].html= "Changed label header";
    mychart = new Highcharts.Chart(mychart.options);
    mychart.render();

JsFiddle: http://jsfiddle.net/msjaiswal/ZD4N5/2/

类似的讨论:这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接