Bug Report: hovertemplate in go.Surface doesn't work properly
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 18.8k
- Fork
- 2.8k
- Merge medio
- 16h 26m
- PR unite (30g)
- 21
Descrizione
The hovertemplate for go.Surface doesn't work properly, it can't display the user defined customdata nor 'text', it will only display the plain text as "cost: %{text}".
Of course, I have also tried that it works well for go.Scatter and go. Scatter3d.
Check the following code, you can see the bug:
import plotly.graph_objects as go
import numpy as np
# Example data for the trajectory
x_traj = [0, 1, 2, 3, 4, 5] # X-coordinates
y_traj = [0, 1, 4, 9, 16, 25] # Y-coordinates
z_traj = [0, 1, 8, 27, 64, 125] # Z-coordinates
# Example data for the contour
x = np.linspace(-10, 10, 100)
y = np.linspace(-10, 10, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2)) # Example Z values
# Create a 3D plot
fig = go.Figure()
# Add the 3D trajectory
fig.add_trace(go.Scatter3d(
x=x_traj,
y=y_traj,
z=z_traj,
text=[1,2,3,4,5,6],
mode='lines+markers', # Use 'lines' for trajectory and 'markers' for points
line=dict(color='blue', width=2), # Customize line color and width
marker=dict(size=5, color='red'), # Customize marker size and color
hovertemplate="x: %{x:.2f}<br>y: %{y:.2f}<br>index: %{text}<br> <extra></extra>",
))
# Add the contour on Z=5 plane
fig.add_trace(go.Surface(
x=x,
y=y,
z=np.full_like(Z, 5), # Set Z=5 for the contour plane
surfacecolor=Z, # Use Z values for the contour colors
text=Z,
colorscale="Viridis",
showscale=True,
contours=dict(
z=dict(
show=True,
start=-1, # Minimum contour value
end=1, # Maximum contour value
size=0.2, # Step size between contours
usecolormap=True,
project_z=True # Project contours onto the Z plane
)
),
opacity=0.7, # Make the contour plane semi-transparent
# hoverinfo="x+y+text", # works well
hovertemplate="x: %{x:.2f}<br>y: %{y:.2f}<br>cost: %{text}<br> <extra></extra>", # doesn't work
))
# Update layout for better visualization
fig.update_layout(
title="3D Trajectory with Contour on Z=5 Plane",
scene=dict(
xaxis_title="X Axis",
yaxis_title="Y Axis",
zaxis_title="Z Axis"
),
width=800,
height=600
)
# Show the plot
fig.show()
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Esegui la riproduzione Python fornita con go.Surface e confronta il suo comportamento di hovertemplate con quello dell'esempio funzionante go.Scatter3d. Inizia tracciando il modo in cui go.Surface gestisce text e customdata per l'output dell'hover. Il lavoro è completo quando l'etichetta hover della surface visualizza il testo definito dall'utente o customdata invece del segnaposto letterale %{text}.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- numpy, python
- Ambito
- data-visualization
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100