Quero exibir todos os pontos em meu gráfico a partir dos dados que obtenho, mas não quero exibir todos os rótulos para eles, porque então o gráfico não é muito legível. Eu estava procurando por isso na documentação, mas não encontrei nenhum parâmetro que pudesse limitar isso.
Não quero pegar apenas três rótulos, por exemplo, porque então o gráfico também é limitado a três pontos. É possível?
Eu tenho algo assim agora:
Se eu pudesse deixar a cada três ou quatro gravadoras, seria ótimo. Mas não encontrei absolutamente nada sobre as opções de rótulos.
Respostas:
Experimente adicionar a
options.scales.xAxes.ticks.maxTicksLimit
opção:fonte
maxRotation: 0
se não quiser girar antes de começar a soltar os rótulos.Para concretizar, digamos que sua lista original de rótulos seja semelhante a:
["0", "1", "2", "3", "4", "5", "6", "7", "8"]
Se você deseja exibir apenas a cada 4 rótulos, filtre sua lista de rótulos de forma que cada quarto rótulo seja preenchido e todos os outros sejam a string vazia (por exemplo
["0", "", "", "", "4", "", "", "", "8"]
).fonte
""
também remove as dicas correspondentes no gráfico!my_labels = [my_labels[i] if i % 10 == 0 else "" for i in range(len(my_list))]
. O número 10 pode ser declarado como uma constante no início do arquivo para facilitar a parametrização do processo.""
, como na resposta a esta pergunta problema de linha de cintura vertical com chart.js onde o OP tinha um problema com linha preta aparece na primeira ocorrência desta aspa dupla, nesse caso ajudou, novamente como @ haywire mencionou que remove o rótulo da dica de ferramentaPara quem deseja conseguir isso no Gráfico JS V2, o seguinte funcionará:
Em seguida, passe a variável options como de costume para um:
fonte
ATUALIZAR:
Atualizei meu fork com o pull mais recente (em 27 de janeiro de 2014) do branch master Chart.js do NNick. https://github.com/hay-wire/Chart.js/tree/showXLabels
RESPOSTA ORIGINAL:
Para aqueles que ainda enfrentam esse problema, fiz um fork do Chart.js há algum tempo para resolver o mesmo problema. Você pode conferir em: https://github.com/hay-wire/Chart.js/tree/skip-xlabels => Older branch! Verifique o branch showXLabels para obter o pull mais recente.
Como usar:
Aplicável ao gráfico de barras e gráfico de linha.
O usuário agora pode passar um
{ showXLabels: 10 }
para exibir apenas 10 rótulos (a contagem real de rótulos exibidos pode ser um pouco diferente dependendo do número total de rótulos presentes no eixo x, mas ainda permanecerá perto de 10, no entanto)Ajuda muito quando há uma grande quantidade de dados. Anteriormente, o gráfico costumava parecer devastado devido aos rótulos do eixo x desenhados uns sobre os outros no espaço apertado. Com
showXLabels
, o usuário agora tem o controle para reduzir o número de rótulos para qualquer número de rótulos que cabem no espaço disponível para ele.Veja as imagens em anexo para uma comparação.
Sem
showXLabels
opção:Com
{ showXLabels: 10 }
a opção passada:Aqui está uma discussão sobre isso: https://github.com/nnnick/Chart.js/pull/521#issuecomment-60469304
fonte
para rotação do eixo
usa isto:
fonte
De acordo com a edição nº 12 do github chart.js . As soluções atuais incluem:
No entanto, depois de alguns minutos, acho que há uma solução melhor.
O seguinte snippet ocultará os rótulos automaticamente . Modifique
xLabels
com uma string vazia antes de invocardraw()
e restaure-os depois disso. Ainda mais, rótulos x rotativos podem ser aplicados, pois há mais espaço depois de ocultar.Observe que
clone
é uma dependência externa.fonte
Eu tive um tipo de problema semelhante e recebi uma boa solução para o meu problema específico, mostrar rótulo na dica de ferramenta, mas não no eixo x para gráfico de linha chartjs . Veja se isso te ajuda
fonte
Esta resposta funciona perfeitamente.
Se você está se perguntando sobre a
clone
função, tente esta:fonte
No arquivo Chart.js, você deve encontrar (na linha 884 para mim)
Se você apenas encerrar a chamada de uma linha para
fillText
comif ( i % config.xFreq === 0){ ... }
e, em seguida,chart.Line.defaults
adicionar algo linha,xFreq : 1
você deve ser capaz de começar a usarxFreq
em seuoptions
quando você ligarnew Chart(ctx).Line(data, options)
.Lembre-se de que isso é muito hacky.
fonte