Quiero mostrar todos los puntos en mi gráfico a partir de los datos que obtengo, pero no quiero mostrar todas las etiquetas para ellos, porque entonces el gráfico no es muy legible. Lo estaba buscando en los documentos, pero no pude encontrar ningún parámetro que limite esto.
No quiero tomar solo tres etiquetas, por ejemplo, porque entonces el gráfico también se limita a tres puntos. ¿Es posible?
Tengo algo así ahora mismo:
Si pudiera dejar una etiqueta cada tercer cuarto, sería genial. Pero no encontré absolutamente nada sobre las opciones de etiquetas.
Respuestas:
Intente agregar la
options.scales.xAxes.ticks.maxTicksLimit
opción:fuente
maxRotation: 0
si desea que no gire antes de comenzar a soltar las etiquetas.Para ser más concreto, digamos que su lista original de etiquetas se ve así:
["0", "1", "2", "3", "4", "5", "6", "7", "8"]
Si solo desea mostrar cada cuarta etiqueta, filtre su lista de etiquetas para que cada cuarta etiqueta se complete y todas las demás sean la cadena vacía (por ejemplo
["0", "", "", "", "4", "", "", "", "8"]
).fuente
""
también elimina la información sobre herramientas correspondiente en el gráfico.my_labels = [my_labels[i] if i % 10 == 0 else "" for i in range(len(my_list))]
. Por supuesto, el número 10 puede declararse como una constante al comienzo del archivo para facilitar la parametrización del proceso.""
, como en la respuesta a esta pregunta, el problema de la línea de ceñido vertical con chart.js donde el OP tenía un problema con la línea negra aparece en la primera aparición de esta comilla doble, en tal caso ayudó, nuevamente como @ haywire mencionó que elimina la etiqueta de la descripción emergentePara cualquiera que busque lograr esto en Chart JS V2, funcionará lo siguiente:
Luego, pase la variable de opciones como de costumbre a:
fuente
ACTUALIZAR:
Actualicé mi bifurcación con la última extracción (a partir del 27 de enero de 2014) de la rama maestra Chart.js de NNick. https://github.com/hay-wire/Chart.js/tree/showXLabels
RESPUESTA ORIGINAL:
Para aquellos que aún enfrentan este problema, bifurqué Chart.js hace un tiempo para resolver el mismo problema. Puede consultarlo en: https://github.com/hay-wire/Chart.js/tree/skip-xlabels => ¡Rama más antigua! Consulte la rama showXLabels para obtener la última extracción.
Cómo utilizar:
Aplicable a gráfico de barras y gráfico de líneas.
El usuario ahora puede pasar a
{ showXLabels: 10 }
para mostrar solo 10 etiquetas (el recuento real de etiquetas mostradas puede ser un poco diferente dependiendo del número total de etiquetas presentes en el eje x, pero aún permanecerá cerca de 10)Ayuda mucho cuando hay una gran cantidad de datos. Anteriormente, el gráfico solía verse devastado debido a las etiquetas del eje x dibujadas unas sobre otras en el reducido espacio. Con
showXLabels
, el usuario ahora tiene el control para reducir la cantidad de etiquetas a cualquier cantidad de etiquetas que quepan bien en el espacio disponible para él.Vea las imágenes adjuntas para una comparación.
Sin
showXLabels
opción:Con
{ showXLabels: 10 }
pasado a la opción:Aquí hay una discusión al respecto: https://github.com/nnnick/Chart.js/pull/521#issuecomment-60469304
fuente
para la rotación del eje
utilizar este:
fuente
De acuerdo con el número 12 de github de chart.js . Las soluciones actuales incluyen:
Sin embargo, después de unos minutos, creo que hay una mejor solución.
El siguiente fragmento ocultará las etiquetas automáticamente . Modificando
xLabels
con una cadena vacía antes de invocarlosdraw()
y restaurándolos después. Aún más, se pueden aplicar etiquetas x rotatorias ya que hay más espacio después de esconderse.Tenga en cuenta que
clone
es una dependencia externa.fuente
Tuve un tipo de problema similar y me dieron una buena solución a mi problema específico mostrar la etiqueta en la información sobre herramientas pero no en el eje x para el gráfico de líneas chartjs . Mira si esto te ayuda
fuente
Esta respuesta funciona a las mil maravillas.
Si se está preguntando acerca de la
clone
función, pruebe esta:fuente
En el archivo Chart.js, debería encontrar (en la línea 884 para mí)
Si simplemente envuelve esa llamada de una línea
fillText
conif ( i % config.xFreq === 0){ ... }
y luegochart.Line.defaults
agrega algoxFreq : 1
, debería poder comenzar a usarxFreq
en suoptions
cuando llamenew Chart(ctx).Line(data, options)
.Eso sí, esto es bastante hacky.
fuente