Plotly Express has an intuitive way to provide pre-formatted plotly plots with minimal lines of code; sort of how Seaborn does it for matplotlib.
It is possible to add traces of plots on Plotly to get a scatter plot on an existing line plot. However, I couldn’t find such a functionality in Plotly Express.
Is it possible to combine a scatter and line graph in Plotly Express?
Advertisement
Answer
You can use:
fig3 = go.Figure(data=fig1.data + fig2.data)
Where fig1
and fig2
are built using px.line()
and px.scatter()
, respectively. And fig3
is, as you can see, built using plotly.graph_objects
.
Some details:
One approach that I use alot is building two figures fig1
and fig2
using plotly.express
and then combine them using their data attributes together with a go.Figure / plotly.graph_objects
object like this:
import plotly.express as px import plotly.graph_objects as go df = px.data.iris() fig1 = px.line(df, x="sepal_width", y="sepal_length") fig1.update_traces(line=dict(color = 'rgba(50,50,50,0.2)')) fig2 = px.scatter(df, x="sepal_width", y="sepal_length", color="species") fig3 = go.Figure(data=fig1.data + fig2.data) fig3.show()