Как форматировать номера в Google API Linechart?

Мне нужно отформатировать числа на оси и числа, которые появляются при наведении мыши на линейную диаграмму.

2 ответов


есть два шага. Первый шаг-выяснить, какой шаблон вы должны использовать; второй шаг-поместить шаблон в нужное место в вашем коде. Чтобы сделать этот пост более красивым, я покажу вам, Шаг 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) форматирует информацию hAxis в то время как (dataTable,1) форматирует информацию vAxis (опять же, которую вы видите при наведении курсора на точки на линейном графике).

последние две строки кода:

var fchartvar = new google.visualization.LineChart(document.getElementById('fchart'));
fchartvar.draw(dataTable, options);

для вас двоих сравните с вашей собственной диаграммой. Заменить fchartvar,dataTable и fchart по именам, используемым в коде. Если вы используете что-то другое, чем линейный график, замените LineChart с диаграммой вы с помощью.

пример 0.0E00 поворот 1,234 на 1.2E03.

Шаг 1: Поиск правильного шаблона

документация Google NumberFormat

NumberFormat поддерживает следующие параметры, переданные конструктору: (источник:Google NumberFormat документация)

decimalSymbol

  • символ для использования в качестве десятичного маркера. По умолчанию-точка (.).

fractionDigits

  • число, указывающее, сколько цифр, отображаемых после десятичной запятой. Этот по умолчанию-2. Если указать больше цифр, чем содержит число, оно будут отображаться нули для меньших значений. Усеченные значения будут округлено (5 округлено вверх).

groupingSymbol

  • символ, используемый для группировки цифр слева от десятичного знака в наборы по три. По умолчанию-запятая (,).

negativeColor

  • цвет текста для отрицательных значений. Нет значения по умолчанию. Значения могут быть любое допустимое значение цвета HTML, например "красный" или "#FF0000".

negativeParens

  • логическое значение, где true указывает, что отрицательные значения должны быть в круглых скобках. По умолчанию true.

шаблон

  • строковый формат. При условии, все остальные параметры игнорируются, кроме negativeColor.

    строка формата является подмножеством набор шаблонов ICU. Например, {pattern:'#,###%'} приведет к выходным значениям "1,000%", "750%", и "50%" для значений 10, 7.5 и 0.5.

префикс

  • строковый префикс для значения, например"$".

суффикс

  • суффикс строки для значение, например "%".

ICU DecimalFormat Reference

как вы могли заметить из документации Google NumberFormat выше, вы можете узнать более подробную информацию о форматировании чисел из ссылки ICU DecimalFormat. Вот некоторые из самых важных сведений из ICU DecimalFormat Reference (он находится в "середине" веб-страницы):

enter image description here

шаблон DecimalFormat содержит положительный и отрицательный подшаблон, например, "#,##0.00;(#,##0.00)". Каждый подшаблон имеет префикс, числовую часть и суффикс. Если нет явного отрицательного подшаблона, отрицательный подшаблон-это локализованный знак минус с префиксом положительного подшаблона. То есть только" 0.00 "эквивалентно" 0.00;-0.00". Если есть явный отрицательный подшаблон, он служит только для указания отрицательного префикса и суффикса; количество цифр, минимальные цифры и другие характеристики игнорируется в отрицательной части. Это значит, что "#,##0.0#;(#)" имеет точно такой же результат как "#,##0.0#;(#,##0.0#)".

префиксы, суффиксы и различные символы, используемые для бесконечности, цифр, тысяч разделителей, десятичных разделителей и т. д. могут быть установлены произвольные значения, и они будут отображаться правильно во время форматирования. Однако следует позаботиться о том, чтобы символы и строки не конфликтовали, иначе синтаксический анализ будет ненадежным. Например, положительные и отрицательные префиксы или суффиксы должны быть разными, чтобы parse () мог отличать положительные значения от отрицательных. Другим примером является то, что десятичный разделитель и разделитель тысяч должны быть разными символами, или синтаксический анализ будет невозможен.

разделитель группировок-это символ, который разделяет кластеры целочисленных цифр, чтобы сделать большие числа более разборчивыми. Он обычно используется для тысяч, но в некоторых местах он отделяет десять тысяч. Размер группировки-это число цифры между разделителями группирования, например 3 для " 100,000,000 "или 4 для"1 0000 0000". На самом деле существует два разных размера группировки: один используется для наименее значимых целых цифр, основной размер группировки, и один используется для всех остальных, вторичный размер группировки. В большинстве мест они одинаковы, но иногда они отличаются. Например, если первичный интервал группировки равен 3, а вторичный-2, то это соответствует шаблону "#,##,##0", и номер 123456789 форматируется как "12,34,56,789". Если шаблон содержит несколько разделителей группирования, интервал между последним и концом целого числа определяет размер первичной группировки, а интервал между последними двумя определяет размер вторичной группировки. Все остальные игнорируются, поэтому "#,##,###,####" == "###,###,####" == "##,#,###,####".

незаконные шаблоны, такие как"#.#.#" или.#" ### , # # # ", заставит DecimalFormat установить неудачный UErrorCode.


Если вам нужно просто отформатировать все числа, показанные на графике, при наведении и по оси в соответствии с локалем страны, самым простым в IMHO является использование кода страны при загрузке библиотеки.

Е. Г.:

google.графики.load ('44', {packages: ['corechart', 'bar',' sankey'], 'language':'fr'});

именно так я бы отформатировал все числа, используя разделители пробелов для тысяч и запятую для десятичного знака место.