Vertical lines (vlines) are a great way to highlight specific x-values on a Plotly chart—whether it’s a threshold, a special event, or a point of interest. Learn how to use Plotly to create vertical lines in both Plotly Express and Graph Objects.
Using Plotly Express with Shapes
Plotly Express doesn’t have a direct vline function, but you can add vertical lines using the update_layout
method and shapes
:
import plotly.express as px
# Sample data
df = px.data.iris()
# Base scatter plot
fig = px.scatter(df, x="sepal_width", y="sepal_length")
# Add vertical line at x = 3.5
fig.update_layout(
shapes=[dict(
type="line",
x0=3.5, x1=3.5,
y0=0, y1=8,
line=dict(color="Red", width=2, dash="dash")
)]
)
fig.show()
This example adds a red dashed vertical line at x = 3.5
spanning from y = 0
to y = 8
.
Using Plotly Graph Objects
If you’re using plotly.graph_objects
, the method is similar but gives more control:
import plotly.graph_objects as go
fig = go.Figure()
# Add scatter trace
fig.add_trace(go.Scatter(x=[1, 2, 3, 4], y=[10, 11, 12, 13], mode='lines+markers'))
# Add vertical line at x = 2.5
fig.add_shape(
type="line",
x0=2.5, x1=2.5,
y0=0, y1=15,
line=dict(color="Green", width=2)
)
fig.show()
Multiple Vertical Lines
You can easily add multiple vlines by including more entries in the shapes
list:
fig.update_layout(
shapes=[
dict(type="line", x0=2, x1=2, y0=0, y1=15, line=dict(color="blue")),
dict(type="line", x0=3, x1=3, y0=0, y1=15, line=dict(color="orange", dash="dot"))
]
)