我想创建具有固定高度的图表,具体取决于用户交互,某些图表可以为空,因此没有图例。
我的问题是我希望所有这些都具有相同的高度,然后,如果有图例在图表上方,那么这个高度应该由图例增加。
我无法得到它,这是我的尝试。
options = {
chart: {
zoomType: 'x',
height: 300
},
legend: {
enabled: 'true',
align: 'center',
verticalAlign: 'bottom',
layout: 'horizontal',
maxHeight: 50
}
};
结果,我有的是,如果有传说,250px图表,如果它不是300px图表。我想要的总是300px图表,如果是传说,要包含它多50px。
我怎么解决呢?
在图表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