JupyterDash line shapes incorrect plotted
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 18.8k
- Forks
- 2.8k
- Avg merge
- 16h 26m
- Merged PRs (30d)
- 21
Description
Plotting lines in Plotly and JupyterDash gives a problem. I don't know if the issue is related to Plotly or JupyterDash, depending on which is the expected behaviour.
It did work in a previous version of Plotly.
Versions:
dash==1.17.0
jupyter-dash==0.3.1
plotly==4.12.0
import plotly.graph_objects as go
from dash.dependencies import Input, Output
from jupyter_dash import JupyterDash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html
import dash_table
x_data = [ 54135, 12346, 75492, 64135, 748612, 31548 ]
fig = go.Figure(go.Scatter(x=x_data, y=[1, 2, 3, 4, 5, 6]))
fig.update_xaxes(
title_text='Segments',
type='category'
)
fig.add_shape(
dict(
type="line",
xref='x', yref='y',
x0=x_data[4], x1=x_data[4],
y0=0, y1=10,
)
)
fig.show()
app = JupyterDash(__name__)
app.layout = html.Div([
dcc.Graph(figure=fig)
])
app.run_server(host='0.0.0.0', port=8003)
But apparently, this gives different results in Plotly as it does in Dash.
Plotly

Dash

(The small part on the left is the zoomed-out result, because the vertical-line was plotted at 31548 (which is the class of the X_data, but Dash seems to regard is as an integer)
This only happened in the latest updates (I used to work with plotly=4.8.0 before this error)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the supplied Python reproduction and compare fig.show() with the JupyterDash app.run_server() output using the listed Plotly, Dash, and JupyterDash versions. Trace how the categorical x-axis value is interpreted for the added shape, then determine whether the discrepancy belongs to Plotly or JupyterDash. Done means the vertical line aligns with the intended category in both outputs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100