bar chart: textposition='auto' not working for 0 values
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 18.3k
- Forks
- 2k
- Merge moyen
- 2 j 12 h
- PR mergées (30 j)
- 28
Description

From the textposition argument documentation for bar traces:
"auto" tries to position
textinside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside.
For small values this is working nicely: Instead of inside, the text gets positioned outside.
But: For 0 values, the text disappears completely instead of being moved outside.
import pandas as pd
import plotly.express as px
df = pd.DataFrame({
"Country": [f"Country {n}" for n in range(6)],
"Some Metric": [8,5,5,.5,0.0001,0]
})
fig = px.bar(
df,
x='Some Metric',
y='Country',
text='Country',
orientation='h')
fig.update_yaxes(visible=False, showticklabels=False)
# change here between "auto" (default), "inside", "outisde"
fig.update_traces(textposition="auto")
fig.show()
Setting 0 values to a small value is a dirty fix that may also lead to the text disappearing when the graph is resized. At the same time, such a fix endangers data integrity.
The alternative would be setting the textposition for every observation separately. I think that should be avoided and covered by setting texposition="auto".
Fix that everybody can implement in their code currently:
fig.update_traces(textposition=['outside' if val==0 else 'auto' for val in df['Some Metric']])
Tested with plotly 5.10.0.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez l’exemple de graphique à barres horizontal avec textposition="auto" et une valeur nulle, puis suivez le chemin de positionnement du texte du bar-trace utilisé par Plotly.js. Confirmez le comportement existant pour les petites valeurs et définissez comme terminé le fait que le libellé reste visible à l’extérieur de la barre lorsque sa valeur est nulle, avec une couverture dans les tests pertinents du bar-trace s’ils sont disponibles.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript
- Domaine
- data-visualization
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Active
- Clarté
- Plutôt claire
- Accessibilité débutants
- 66/100