Skip to content

constraining axes leads to paper coordinates being off and to extra space between plot area and annotations #4872

Open
@rl-utility-man

Description

@rl-utility-man

If I constrain the x-axis, a legend to the right of the plot area shows up too far to the right and paper coordinates x=0 and x=1 are no longer at the edges of the plot area. Paper coordinate x=1 should always be the right edge of the plot area. There should not be excessive trapped white space between the legend and the plot area. The constrained, no-width behavior should be similar to the unconstrained and constrained-with-width behaviors.

Here I reproduce the problem using the documentation example here:
https://plotly.com/python/axes/#fixed-ratio-axes

I'm happy to provide and diff the output JSON if that would be helpful

import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Scatter(
    x = [0,1,1,0,0,1,1,2,2,3,3,2,2,3],
    y = [0,0,1,1,3,3,2,2,3,3,1,1,0,0],
    name="demo"
))

##Add some elements outside the main plot area
fig.update_layout(
        title=dict(text="Source:  Plotly Bug Report",
                   yref="container",
                   xref="paper",
                   xanchor="right",
                  x=1, y=0.005),
                  showlegend=True
)


#the current layout is reasonable -- the legend is close to the plot area and x=1 in paper coordinates is where we expect it.
fig.show()

#now we constrain the domain and it injects lots of space between the plot area and the legend
#paper coordinates no longer reference the plot area -- paper coordinate x=1 is well to the right of the plot area
fig.update_xaxes(
    range=[-1,4],  # sets the range of xaxis
    constrain="domain",  # meanwhile compresses the xaxis by decreasing its "domain"
)
fig.update_yaxes(
    scaleanchor = "x",
    scaleratio = 1
)

fig.show()

#now we specify the width and the layout becomes reasonable again

fig.update_layout(
    width = 800,
)

fig.show()

unconstrained graphic (expected behavior):
Image
constrained graphic (unexpected behavior)
Image
constrained graphic with width (expected behavior)
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2considered for next cyclebugsomething broken

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions