Pergunta

Usando o gráfico de áreas empilhadas conforme visto neste exemplohttp://nvd3.com/ghpages/stackedArea.html

Tentando formatar os rótulos de escala do eixo y e os rótulos das dicas de ferramenta para serem inteiros em vez de flutuantes.Tentei alterar o código a seguir de

chart.yAxis
        .axisLabel('Users')
        .tickFormat(d3.format(',.2f'));

para

chart.yAxis
        .axisLabel('Users')
        .tickFormat(d3.format(',.0d'));

A precisão permanece inalterada (ainda mostra valores até a centésima casa).Eu segui o Github Wiki sem sucesso https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format

Qualquer sugestão ou sugestão será muito apreciada.

Foi útil?

Solução

Parece isso não é suportado pelo nvd3 no momento.Veja a ofensa linha.

Além disso, sua especificação de formato não está correta.Conforme mencionado na documentação, "d" ignora valores não inteiros.Então você provavelmente quer ",.0f" em vez disso, o que significa:

  • ,:use vírgulas para separar milhares.
  • .0: precisão de zero (o significado exato disso depende de qual tipo está em uso).
  • f:O tipo;nesse caso, Número.toFixed.Isto significa um número fixo de dígitos (o precisão) aparecem após a vírgula e o número é arredondado se necessário.

Outras dicas

este pode formatar o texto do rótulo de flutuante para inteiro.

para gráfico de pizza:

chart.pie.valueFormat(d3.format(',.0d'));

para gráfico de linhas:

chart.yAxisTickFormat(d3.format(',.0d'));

O .tickFormat método no .yAxis método não o atualiza corretamente.Esta é a solução alternativa que usei:

        chart.yAxisTickFormat(d3.format(',.0d'));

Eu tentei assim

.axisLabel('%').tickFormat(function(d) { return parseFloat(d).toFixed(1) + "%"; });

Está funcionando para mim. Estou obtendo resultados com casas decimais e porcentagem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top