Como faço para adicionar rótulos de texto aos eixos em d3?
Por exemplo, tenho um gráfico de linha simples com eixos xey.
No meu eixo x, tenho marcações de 1 a 10. Quero que a palavra "dias" apareça abaixo dele para que as pessoas saibam que o eixo x está contando os dias.
Da mesma forma, no eixo y, tenho os números de 1 a 10 como carrapatos e quero que as palavras "sanduíches comidos" apareçam de lado.
Existe uma maneira simples de fazer isso?
fonte
.attr("transform", "rotate(-90)")
faz com que todo o sistema de coordenadas gire. Assim, se você estiver posicionando com "x" e "y", você precisa trocar as posições do que eu esperava.Na nova versão do D3js (versão 3 em diante), quando você cria um eixo do gráfico via
d3.svg.axis()
função, você tem acesso a dois métodos chamadostickValues
etickFormat
que estão embutidos na função para que possa especificar quais valores você precisa dos tiques para e em quais formato que você deseja que o texto apareça:fonte
Se você quiser o rótulo do eixo y no meio do eixo y como eu fiz:
-50
)chartHeight / 2
)Amostra de código:
Isso evita a rotação de todo o sistema de coordenadas, conforme mencionado por lubar acima.
fonte
Se você trabalha em d3.v4, conforme sugerido, você pode usar esta instância oferecendo tudo que você precisa.
Você pode querer apenas substituir os dados do eixo X pelos seus "dias", mas lembre-se de analisar os valores da string corretamente e não aplicar concatenação.
parseTime também pode fazer o truque para escalar dias com um formato de data?
mexer com css / js global
fonte
D3 fornece um conjunto de componentes de baixo nível que você pode usar para montar gráficos. Você recebe os blocos de construção, um componente de eixo, junção de dados, seleção e SVG. É seu trabalho colocá-los juntos para formar um gráfico!
Se você deseja um gráfico convencional, ou seja, um par de eixos, rótulos de eixo, um título de gráfico e uma área de plotagem, por que não dar uma olhada no d3fc ? é um conjunto de código aberto de componentes D3 de alto nível. Inclui um componente de gráfico cartesiano que pode ser o que você precisa:
Você pode ver um exemplo mais completo aqui: https://d3fc.io/examples/simple/index.html
fonte
ou
fonte