Cannot increase distance between shape and its label outside of the object
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 18.8k
- Forks
- 2.8k
- Merge moyen
- 16 h 26 min
- PR mergées (30 j)
- 21
Description
Challenge
I would like to draw a shape using the label argument to position the label outside of the shape. Unfortunately, the label always touches the shape and padding only works in one direction: towards the center of the shape.
Here is an example:
import plotly.graph_objects as go
fig = go.Figure()
for i in range(0, 4):
fig.add_shape(
go.layout.Shape(
type="rect",
x0=10,
y0=10*i + 3,
x1=15,
y1=10*i + 10,
label={
"text": f"Padding: {i*10}px",
"textposition": "middle right",
"xanchor": "left",
"yanchor": "middle",
"padding": i*10,
},
)
)
fig.update_layout(xaxis_range=[0, 20], yaxis_range=[0, 60])
fig.show()
Despite seting xanchor="left" and textposition="middle right", the label barely touches the shape (for padding=0) and with increasing padding the label always moves towards the center.
Setting padding to a negative value seems not to be allowed:
ValueError:
Invalid value of type 'builtins.int' received for the 'padding' property of layout.shape.label
Received value: -10
The 'padding' property is a number and may be specified as:
- An int or float in the interval [0, inf]
Expected Behavior
Either infer from anchor and textposition, if a label should be outside of the shape, or allow negative values for padding so that I can increase the distance between the rectangle and the label.
I could not find any other info regarding this observation and I would like to avoid using an annotation as a workaround.
Am I overlooking something or is this a bug?
System Info
python: v3.10.11
plotly: v5.24.1
Working in a VSCode (v1.96.2) notebook and tested multiple different renderers with identical outcome: "vscode", "notebook", "browser".
Same result with write_image and pdf and png.
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
Commencez par exécuter l’exemple fourni de go.Figure/add_shape avec les différentes valeurs de padding et les différents renderers. Suivez la manière dont les labels des formes gèrent textposition, xanchor et padding ; l’issue est terminée lorsque les labels peuvent être espacés vers l’extérieur de la forme sans workaround avec annotation, avec une couverture de régression pour le cas démontré.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- data-visualization
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Active
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100