【问题标题】:Replacing/removing the metric notations like thousands "k" abbreviation替换/删除度量符号,如千位“k”缩写
【发布时间】:2012-12-31 22:32:11
【问题描述】:

我的 areaspline 图表的 Y 轴值最高约为 6000。Highcharts 会自动将 Y 轴上的“000”部分更改为“k”。

由于我是法国人,并且该网站应该使用相同的语言,因此这个“k”缩写在我的情况下没有意义,我希望有一个随意的“000”显示来代替它。

这可能吗?怎么样?

【问题讨论】:

标签: highcharts highstock


【解决方案1】:

您可以通过在defaultOptions 中用null 显式覆盖lang.numericSymbols* 来做到这一点,如下所示

Highcharts.setOptions({
    lang: {
        numericSymbols: null //otherwise by default ['k', 'M', 'G', 'T', 'P', 'E']
    }
});

文档内容如下

数字符号:Array<String>

Metric prefixes 用于缩短轴标签中的大数字。 用 null 替换任何位置都会导致完整的数字 书面。将 numbericSymbols 设置为 null 会禁用缩短 共。默认为 ['k', 'M', 'G', 'T', 'P', 'E']。

**从 v1.2.0 (2012-08-24) 起正式提供
这在 v1.2.0 之前不起作用,因为后缀是硬编码的。*

替代解决方案

(应该适用于支持格式化程序的所有版本)

使用 yAxis.labels.formatter 并按原样返回值

yAxis: {
    labels: {
        formatter: function () {
            return this.value;
        }
    }
}

Disabling metric notation on axis values | Highchart & Highstock (v1.2+) @ jsFiddle
Disabling metric notation on axis values | Highchart & Highstock (old versions) @ jsFiddle

【讨论】:

  • 这个解释很好。但是有什么办法可以用印度数字格式来表示Y轴数据吗?
  • 谢谢,这正是我想做的。也感谢您编辑我的问题,我现在发现它并没有我想象的那么清楚。
  • @Gopinagh,是的,您当然可以编写自己的格式化程序。将syedabdulbaqi.wordpress.com/2009/03/10/… 添加到现有的小提琴中,你会得到jsfiddle.net/jugal/hm4Bh/1 如果你在谈论 Lakhs、Crores 等,那么也可以以类似的方式完成
【解决方案2】:

根据@Jugal-Thakkar 的回答,我实现了:

numericSymbols: [' × 10³', ' × 10⁶', ' × 10⁹', ' × 10¹²', ' × 10¹⁵', ' × 10¹⁸'],

上标 0 和 4-9 仅为 UTF-8 字符。您需要指定支持这些的字体,否则您将遇到字体替换问题,如Why the display of Unicode characters for superscripted digits are not at the same height? 中所述。

我用:

font-family: Lucida Sans Unicode, Arial Unicode MS, Cambria, Calibri, Consolas;

另外,我宁愿使用 1.8 × 10¹⁴ 而不是 180 × 10¹²,但要好于难以阅读的 180000000000000。

【讨论】:

    猜你喜欢
    • 2018-01-11
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    相关资源
    最近更新 更多