高图图表高度与图例的距离

时间:2019-03-25 17:43:23

标签: highcharts

我想创建固定高度的图表,具体取决于用户交互,某些图表可以为空,因此没有图例。

我的问题是我希望所有这些对象都具有相同的高度,然后,如果图表上方有图例,则应通过图例将该高度增加。

我不明白,这是我的尝试。

options = {
  chart: {
    zoomType: 'x',
    height: 300
  },
  legend: {
     enabled: 'true',
     align: 'center',
     verticalAlign: 'bottom',
     layout: 'horizontal',
     maxHeight: 50
  }
};

结果是,如果有图例,我将拥有一个250px的图表,如果不是300px的图表。我想要的始终是300px的图表,如果是图例,则还要包含50px。

我该如何解决?

1 个答案:

答案 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