Allow ticktext for minor ticks
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 18.8k
- Forks
- 2.8k
- Merge medio
- 16 h 26 min
- PR fusionados (30 d)
- 21
Descripción
Here is the baseline plot :
import plotly.express as px
import pandas as pd
from datetime import timedelta
# Example data
df = pd.DataFrame({
"Task": ["Task A", "Task B", "Task C"],
"Start": ["2023-01-01 08:00:00", "2023-01-02 09:30:00", "2023-01-04 11:00:00"],
"Finish": ["2023-01-01 15:00:00", "2023-01-02 20:00:00", "2023-01-04 19:00:00"],
})
# Create the timeline figure
fig = px.timeline(
df,
x_start="Start",
x_end="Finish",
y="Task",
title="Timeline with major and minor ticks on x axis",
)
df['Start'] = pd.to_datetime(df['Start'])
df['Finish'] = pd.to_datetime(df['Finish'])
# Define tick positions and labels
horizon_start = df['Start'].min().replace(hour=0, minute=0)
horizon_end = df['Finish'].max().replace(hour=0, minute=0) + timedelta(days=1)
minor_ticks = pd.date_range(horizon_start, horizon_end, freq="6h")
fig.update_xaxes(
showgrid=True,
gridcolor="lightgray",
gridwidth=2,
dtick="D1",
tickformat="%e %b",
tickangle=-45,
minor={
"ticklen": 3,
"tickcolor": "lightgray",
"tickmode": "array",
"showgrid": True,
"gridwidth": 0.5,
"tickvals": minor_ticks,
},
)
# Show the figure
fig.show()
I would like to have the possibility of displaying ticktext for minor ticks + ticktextcolor + ticktextfontsize, with something like :
minor_text = [t.strftime('%Hh').lstrip('0') if t.hour != 0 else "0h" for t in minor_ticks]
fig.update_xaxes(
(...)
minor={
"ticklen": 3,
"tickcolor": "lightgray",
"tickmode": "array",
"showgrid": True,
"gridwidth": 0.5,
"tickvals": minor_ticks,
"ticktext": minor_text,
"ticktextcolor": 'lightgray',
"ticktextfontsize": 5,
},
)
Ideally, for the ticks that are both in major and minor ticks, only the major tick text would be displayed.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en el punto de entrada fig.update_xaxes y en la configuración del eje secundario mostrada en el issue. Sigue cómo se representan las propiedades de las marcas secundarias y cómo se pasan a través de la API de graph objects de Python. Se considera terminado cuando las marcas secundarias aceptan ticktext, ticktextcolor y ticktextfontsize, y las etiquetas de las marcas principales tienen prioridad cuando las posiciones se superponen.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- data-visualization
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100