要在创建高价图表之前设置图例的可见性,我可以这样做:
new Highcharts.StockChart({
legend: {
enabled: true,
align: 'left'
}
});
创建图表后,我希望允许用户隐藏或将图例移动到其他位置。我需要类似于chart.setTitle的东西,但是对于传说。
请注意,我读过this post但不太明白其中的建议。
感谢您的帮助。
答案 0 :(得分:1)
现在这样的事情不是Highcharts的一部分,但它是计划好的插件,请检查:http://highcharts.uservoice.com/forums/55896-general/suggestions/912335-draggable-legend-box
答案 1 :(得分:0)
您链接的帖子是正确的,但不是您想要的完整。无法设置打开和关闭图例的选项,并让图表将边距调整为图例的存在。但是,通过以链接到的示例中显示的方式删除所有数据系列,图表将消失。如果您提前知道图例的位置以及给出的边距,则可以手动调整边距。
例如,如果“chart”是highcharts对象的名称:
for (var a=0; a<window[id].Chart_dataseries.length; a++)
{
chart.series[a].options.showInLegend = false;
chart.series[a].legendItem = null;
chart.legend.destroyItem(chart.series[a]);
chart.legend.render();
}
然后,您可以通过重新渲染项目来“重新显示”图表。
for (var a=0; a<window[id].Chart_dataseries.length; a++)
{
chart.series[a].options.showInLegend = true;
chart.series[a].legend.renderItem(chart.series[a]);
chart.legend.render();
}
我通过将操作链接到复选框来实现这一点,当检查时,图表“重新出现”,当未选中时,图表“消失”。我尝试使用以下附加命令执行此操作:
chart.options.legend.enabled=false; (or true)
chart.render();
这确实调整了图表以填充图例在删除图例时占用的空间。然而,它也留下了传说中的框。我还允许我的用户手动调整保证金,所以对我来说一个有效的选择是让用户“关闭”图例,然后手动调整保证金。