如何在谷歌API线形图中设置数字格式?

如何在谷歌API线形图中设置数字格式?,api,google-visualization,Api,Google Visualization,我需要格式化轴中的数字以及将鼠标悬停在折线图上时显示的数字。其中包括两个步骤。第一步是找出你应该使用的模式;第二步是将模式放在代码中的适当位置。为了使这篇文章更漂亮,我向你展示了第2步和第1步 步骤2:将模式放入代码中 代码如下: var options = { hAxis: {format:'###,###'} vAxis: {title: 'Time', format:'0.0E00'}, }; var formatter1 = new goo

我需要格式化轴中的数字以及将鼠标悬停在折线图上时显示的数字。

其中包括两个步骤。第一步是找出你应该使用的模式;第二步是将模式放在代码中的适当位置。为了使这篇文章更漂亮,我向你展示了第2步和第1步

步骤2:将模式放入代码中 代码如下:

var options = {
        hAxis: {format:'###,###'}
        vAxis: {title: 'Time', format:'0.0E00'},
    };
    var formatter1 = new google.visualization.NumberFormat({pattern:'###,###'});
    formatter1.format(dataTable, 0);
    var formatter2 = new google.visualization.NumberFormat({pattern:'0.0E00'});
    formatter2.format(dataTable, 1);
    var fchartvar = new google.visualization.LineChart(document.getElementById('fchart'));
    fchartvar.draw(dataTable, options);
vAxis:{title:'Time',format:'0.0E00'}
格式化垂直轴上的标签

这将设置将鼠标悬停在折线图上的点上时看到的数字的格式:

var formatter1 = new google.visualization.NumberFormat({pattern:'0.0E00'});
formatter1.format(dataTable, 1);
注意
(dataTable,0)
如何格式化哈克斯信息,而
(dataTable,1)
如何格式化vAxis信息(同样,当您将鼠标悬停在折线图上的点上时可以看到)

最后两行代码:

var fchartvar = new google.visualization.LineChart(document.getElementById('fchart'));
fchartvar.draw(dataTable, options);
是给你们两个的,和你们自己的图表比较一下。用代码中使用的名称替换
fchartvar
dataTable
fchart
。如果您使用的不是折线图,请将
折线图
替换为您使用的图表

0.0E00
的一个示例是将
1234
转换为
1.2E03

步骤1:找到正确的模式 谷歌数字格式文档 NumberFormat支持传递给构造函数的以下选项:(源:)

小数符号

  • 用作小数标记的字符。默认值是一个点(.)
分形数字

  • 一个数字,指定小数点后要显示的位数。这个 默认值为2。如果指定的位数多于数字所包含的位数,则 对于较小的值,将显示零。截断的值将被删除 四舍五入(向上五舍五入)
分组符号

  • 用于将数字分组到小数点左边的字符 分成三组。默认值是逗号(,)
底色

  • 负值的文本颜色。没有默认值。值可以是 任何可接受的HTML颜色值,如“红色”或“FF0000”
负片

  • 布尔值,其中true表示应为负值 用括号括起来。默认值为true
图案

  • 格式字符串。提供时,将忽略所有其他选项,但 底片颜色

    格式字符串是字符串的子集。例如, {pattern:'#、####%'}将导致输出值“1000%”、“750%”和 对于值10、7.5和0.5,“50%”

前缀

  • 值的字符串前缀,例如“$”
后缀

  • 值的字符串后缀,例如“%”
ICU十进制参考 正如您可能已经从上面的Google NumberFormat文档中注意到的,您可以从ICU DecimalFormat参考中找到有关格式化数字的更详细信息。以下是来自的一些最重要的信息(位于网页的“中间”):

DecimalFormat模式包含正反两个子模式,例如,“#,##0.00;(#,##0.00)”。每个子模式都有一个前缀、一个数字部分和一个后缀。如果没有显式的负子模式,则负子模式是正子模式前面的本地化减号。也就是说,仅“0.00”就相当于“0.00;-0.00”。如果有一个显式的否定子模式,它只用于指定否定前缀和后缀;在负子模式中忽略位数、最小位数和其他特征。这意味着“#,###0.0#”(#)与“#,##0.0#”(#,##0.0#”)的结果完全相同

用于无穷大、数字、千位分隔符、小数分隔符等的前缀、后缀和各种符号可以设置为任意值,并且它们在格式化过程中会正确显示。但是,必须注意符号和字符串不冲突,否则解析将不可靠。例如,正前缀和负前缀或后缀必须是不同的,parse()才能区分正值和负值。另一个例子是十进制分隔符和千位分隔符应该是不同的字符,否则将无法进行解析

分组分隔符是一个字符,用于分隔整数值簇,以使大数值更清晰。它通常用于数千人,但在某些地区,它分隔了一万人。分组大小是分组分隔符之间的位数,例如3表示“100000000”,4表示“100000000”。实际上有两种不同的分组大小:一种用于最低有效整数,即主要分组大小,另一种用于所有其他分组大小,即次要分组大小。在大多数地区,它们是相同的,但有时是不同的。例如,如果主分组间隔为3,次分组间隔为2,则这对应于模式“#、#、#、#0”,并且数字123456789的格式为“12,34,56789”。如果模式包含多个分组分隔符,则最后一个分隔符和整数结尾之间的间隔定义主分组大小,最后两个分隔符之间的间隔定义次分组大小。所有其他的都被忽略了,所以“#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#


非法模式(如“#.#.#.#.#”或“#.#.#.#.#.#.#.”将导致DecimalFormat设置失败的错误代码。

如果需要根据国家/地区简单地格式化图形、悬停和轴中显示的所有数字,IMHO中最简单的方法是在加载库时使用国家/地区代码

例如:

load('44',{packages:['corechart','bar','sankey'],'language':'fr'})

这就是我将所有数字格式化的方式,使用空格分隔符表示千,逗号表示小数点