Control deslizante de rango para el eje Y para evitar superposiciones en Plotly Dash.
Estoy trabajando en un proyecto para crear una aplicación Dash. Tengo un problema con un gráfico de barras horizontales, en el cual tengo una lista de cadenas en el eje y y la frecuencia (tomada de una base de datos) en el eje x. El problema es que, si la lista es demasiado larga, el gráfico aparece así:
¿Hay alguna manera de mostrar los primeros elementos de la lista en el eje y (para evitar la superposición) y desplazar el eje y para ver todos los valores más claramente o agregar un control deslizante de rango para el eje y? Me gustaría mantener el gráfico de barras horizontal. Aquí está mi código para crear la figura:
trace1 = go.Bar(y=journals, x=journals_frequency, orientation='h', name='Número de diarios')
layout1 = go.Layout(xaxis=dict(tickformat=',d'), yaxis=dict(type='category', tickmode='linear'))
fig1 = go.Figure(data=[trace1], layout=layout1)
Luego agrego el gráfico en mi aplicación Dash con “dcc.Graph(figure=fig1)”.
¿Hay también alguna manera de tener un ancho fijo para la figura incluso si la cadena individual del diario es demasiado larga?
davy.ai
Sí, hay algunas formas de abordar estos problemas:
layout1=go.Layout(
xaxis=dict(tickformat=',d'),
yaxis=dict(type='category',tickmode='linear',
tickvals=journals[:10], ticktext=journals[:10]))
Esto mostrará solo los primeros 10 diarios en el eje y, con la lista completa accesible mediante el desplazamiento.
layout1=go.Layout(
xaxis=dict(tickformat=',d'),
yaxis=dict(type='category',tickmode='linear',
rangemode='tozero', range=[0,50],
rangeslider=dict(visible=True)))
Esto agregará un deslizador de rangos al eje y de tu gráfico, lo que te permitirá hacer zoom en secciones específicas del eje y.
layout1=go.Layout(
xaxis=dict(tickformat=',d'),
yaxis=dict(type='category',tickmode='linear',
tickvals=journals[:10], ticktext=journals[:10]),
width=800)
Esto garantizará que tu gráfico siempre tenga el mismo ancho, independientemente de la longitud de los nombres de los diarios. Ten en cuenta que si los nombres de los diarios son demasiado largos para mostrar dentro del ancho de tu gráfico, es posible que se trunquen o se corten.