Ось d3.js и nvd3.js и точное форматирование меток
Вопрос
Использование составной диаграммы с областями, как показано в этом примере.http://nvd3.com/ghpages/stackedArea.html
Попытка отформатировать метки галочек по оси Y и метки всплывающей подсказки так, чтобы они были целыми числами, а не числами с плавающей запятой.Попробовал изменить следующий код с
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.2f'));
к
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.0d'));
Точность остается неизменной (по-прежнему отображаются значения с точностью до сотых).Я следил за Github Wiki, но безрезультатно. https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format
Любые предложения или подсказки будут с благодарностью приняты.
Решение
Выглядит как это не поддерживается nvd3 в данный момент.Увидеть оскорбление линия.
Кроме того, ваша спецификация формата не совсем верна.Как упоминалось в документации, "d"
игнорирует нецелые значения.Итак, вы, вероятно, хотите ",.0f"
вместо этого, что означает:
,
:используйте запятые для разделения тысяч..0
: точность нуля (точное значение этого зависит от того, какой тип находится в использовании).f
:А тип;в этом случае, Номер.toFixed.Это означает фиксированное количество цифр ( точность) появляются после десятичной точки, при необходимости число округляется.
Другие советы
Это может отформатировать текст метки от Float в целое число.
для круговой диаграммы:
chart.pie.valueFormat(d3.format(',.0d'));
для диаграммы линии:
chart.yAxisTickFormat(d3.format(',.0d'));
. А .tickFormat
метод на .yAxis
метод не обновляет его должным образом.Это работа, которую я использовал:
chart.yAxisTickFormat(d3.format(',.0d'));
Я пробовал так
.axisLabel('%').tickFormat(function(d) { return parseFloat(d).toFixed(1) + "%"; });
.
Его работает для меня. Я получаю результаты с десятичными точками и процентом.