Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update the subplot x and y axis title using add_trace #5058

Open
Folarin14 opened this issue Feb 27, 2025 · 1 comment
Open

Update the subplot x and y axis title using add_trace #5058

Folarin14 opened this issue Feb 27, 2025 · 1 comment
Labels
feature something new P3 backlog

Comments

@Folarin14
Copy link

The snippet below gotten from plotly documentation is unneccesrily verbose. Users should be able to update x and y axis title for respective subplots by passing an argument to the add_trace() method where the row and col are also already specified. I can't imagine having more than a few subplots to make with this approach. Having a master x and y axis title is only great if all subplots are displaying the same type of data which is not always the case in science

from plotly.subplots import make_subplots
import plotly.graph_objects as go

# Initialize figure with subplots
fig = make_subplots(
    rows=2, cols=2, subplot_titles=("Plot 1", "Plot 2", "Plot 3", "Plot 4")
)

# Add traces
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[4, 5, 6]), row=1, col=1)
fig.add_trace(go.Scatter(x=[20, 30, 40], y=[50, 60, 70]), row=1, col=2)
fig.add_trace(go.Scatter(x=[300, 400, 500], y=[600, 700, 800]), row=2, col=1)
fig.add_trace(go.Scatter(x=[4000, 5000, 6000], y=[7000, 8000, 9000]), row=2, col=2)

# Update xaxis properties
fig.update_xaxes(title_text="xaxis 1 title", row=1, col=1)
fig.update_xaxes(title_text="xaxis 2 title", range=[10, 50], row=1, col=2)
fig.update_xaxes(title_text="xaxis 3 title", showgrid=False, row=2, col=1)
fig.update_xaxes(title_text="xaxis 4 title", type="log", row=2, col=2)

# Update yaxis properties
fig.update_yaxes(title_text="yaxis 1 title", row=1, col=1)
fig.update_yaxes(title_text="yaxis 2 title", range=[40, 80], row=1, col=2)
fig.update_yaxes(title_text="yaxis 3 title", showgrid=False, row=2, col=1)
fig.update_yaxes(title_text="yaxis 4 title", row=2, col=2)

Something along the lines of the below snipppet would be better. Even better is if you can loop through the number of traces you created defined by the rows and cols argument of the subplot. See issue
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[4, 5, 6]), row=1, col=1, xaxes_title='Date', yaxes_title='rainfall')

Thanks

@gvwilson gvwilson added feature something new P3 backlog labels Feb 28, 2025
@gvwilson
Copy link
Contributor

Thanks for the suggestion @Folarin14 - if you would like to prepare a PR that makes this change, we'd be happy to prioritize review. cheers - @gvwilson

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature something new P3 backlog
Projects
None yet
Development

No branches or pull requests

2 participants