我想创建固定高度的图表,具体取决于用户交互,某些图表可以为空,因此没有图例。
我的问题是我希望所有这些对象都具有相同的高度,然后,如果图表上方有图例,则应通过图例将该高度增加。
我不明白,这是我的尝试。
options = {
chart: {
zoomType: 'x',
height: 300
},
legend: {
enabled: 'true',
align: 'center',
verticalAlign: 'bottom',
layout: 'horizontal',
maxHeight: 50
}
};
结果是,如果有图例,我将拥有一个250px的图表,如果不是300px的图表。我想要的始终是300px的图表,如果是图例,则还要包含50px。
我该如何解决?
答案 0 :(得分:1)
在图表load
事件中,您可以使用chart.setSize
方法将图表的高度增加图例的高度。
function addLegendHeight(chart) {
var legendSpace = chart.legend.legendHeight -
chart.legend.padding;
if (legendSpace) {
chart.setSize(null, chart.chartHeight + legendSpace);
}
}
Highcharts.chart('container', {
chart: {
...,
events: {
load: function() {
addLegendHeight(this);
}
}
},
...
});
实时演示:http://jsfiddle.net/BlackLabel/seqah1by/
API参考:https://api.highcharts.com/class-reference/Highcharts.Chart#setSize