【问题标题】:Highcharts addSeries yAxis Label FormattingHighcharts addSeries yAxis 标签格式
【发布时间】:2018-11-12 19:11:34
【问题描述】:

我有一个 Highcharts 图表,效果很好,并且使用以下格式对 yAxis 标签进行了自定义格式。

yAxis: {
    labels: {
        formatter: function () {
            var newNumber = formatNumber(this.value, 1);
            return newNumber;
        }
};

但是,当我像下面这样动态添加系列时,yAxis 标签没有相同的自定义格式。看起来他们最终只是使用默认的 Highcharts 数字格式。

chart.addSeries({
    data: newData,
    yAxis: newDataName
});

如何使动态添加的系列与最初加载的系列具有相同的标签编号格式?

另外,请注意,我需要为动态添加的系列命名(“newDataName”),以便稍后再次引用它以将其删除。

这也是动态添加轴的方式。因为要澄清一下,我要添加一个系列,还要添加一个轴来显示该系列。

chart.addAxis({
    id: theData,
    title: {
        text: "newAxis"
    }
});

【问题讨论】:

  • 我不确定这是否有意义...yAxis: newDataName 是什么?轴标签未在系列中定义,这似乎是您要添加的。
  • @HalvorStrand - 这只是该系列的名称。
  • this example。你的代码有什么不同?你的意思是应该在yAxisaddSeries 中?在我创建的示例中,实际的轴标签仍然根据您的规则进行格式化。
  • @HalvorStrand 这就是我认为会发生的事情。所以根据我原来的自定义格式,数字应该返回为 50K、2M、7B 等。所以它们会有大写 K、M 或 B 的压缩格式。但是,动态添加的系列的标签正在显示就像 5,000k 一样。所以它有一个小写的“k”并且格式不正确(5,000k 将是 5M)......所以我可以看出我的自定义格式没有被应用。我还编辑了原始帖子,因此您也可以看到我是如何动态添加轴的。
  • @ewolden 谢谢,发布和编辑!

标签: highcharts


【解决方案1】:

由于您要动态添加系列和系列应使用的新轴,因此该轴还需要包含格式化程序详细信息。例如(JSFiddle):

// New axis
chart.addAxis({
    id: 'new',
    // Which also has the label formatter
    labels: {
        formatter: function () {
            return formatNumber(this.value, 1);
        }
    },
    title: {
        text: "newAxis"
    }
});

// New series which uses the axis
chart.addSeries({
    data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175],
    yAxis: 'new'
});

【讨论】:

    猜你喜欢
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多