Highcharts 服务器端图像生成,如何在回调参数中设置图例 labelFormatter

Highcharts server side image generation, how to set up legend labelFormatter in callback argument

我正在开发一个 PDF 文件生成器,用户可以使用 Highcharts 服务器端图像生成来填充文档中的图形信息。

http://www.highcharts.com/docs/export-module/render-charts-serverside

一切都很好,我会自定义我的高图图例,以便在图表底部每行获得一个图例。 因为服务器端生成使用 JSON 格式,所以我无法设置 "legend.labelFormatter" 回调以在每个图例后强制换行。

源码的readme中有一个简单的例子,但不能满足我的需要。 (https://github.com/highslide-software/highcharts.com/tree/master/exporting-server/phantomjs)

自述文件示例:

function(chart) {
    chart.renderer.arc(200, 150, 100, 50, -Math.PI, 0).attr({
        fill : '#FCFFC5',
        stroke : 'black',
        'stroke-width' : 1
     }).add();
}

我自己的回调

function(chart){

    console.log('COOL!');

    chart.legend.labelFormatter = function () {


        console.log('COOL 2!');


        return this.name + "\n";
    };

    chart.redraw();

}

我认为有两种解决方案(至少)可以满足您的需求:

  • 使用 labelFormat 而不是 labelFormatter,参见 API。在您的情况下:labelFormat: "{name}\n" - 不起作用
  • 使用 layout 选项将图例渲染为垂直。再次参见 API.
  • 为图例设置固定 widthdemo

无论如何,你试过使用labelFormatter吗?我知道它是 JSON,但我认为它有效。