Plotly:次y轴导致右侧空白

Plotly:次y轴导致右侧空白,plotly,plotly-dash,Plotly,Plotly Dash,我正在制作一个包含大量超高分辨率数据的plotly dash图表。添加第二个y轴时,我发现plotly svg组件内图表右侧出现一个空白。当我关闭第二个轴时,该空白消失。当图表在整个屏幕上最大化时,可以很好地看到它 作为展示,我使用了plotly文档中的一个示例: from plotly.subplots import make_subplots import plotly.graph_objects as go # Create figure with secondary y-axis fi

我正在制作一个包含大量超高分辨率数据的plotly dash图表。添加第二个y轴时,我发现plotly svg组件内图表右侧出现一个空白。当我关闭第二个轴时,该空白消失。当图表在整个屏幕上最大化时,可以很好地看到它

作为展示,我使用了plotly文档中的一个示例:

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

# Create figure with secondary y-axis
fig = make_subplots(specs=[[{"secondary_y": True}]])

# Add traces
fig.add_trace(
    go.Scatter(x=[1, 2, 3], y=[40, 50, 60], name="yaxis data"),
    secondary_y=False,
)

fig.add_trace(
    go.Scatter(x=[2, 3, 4], y=[4, 5, 6], name="yaxis2 data"),
    secondary_y=True,
)

# Add figure title
fig.update_layout(
    title="Right margin",
    showlegend=False
)

# Set x-axis title
fig.update_xaxes(title_text="xaxis title")

# Set y-axes titles
fig.update_yaxes(title_text="<b>primary</b> yaxis title", secondary_y=False)
fig.update_yaxes(title_text="<b>secondary</b> yaxis title", secondary_y=True)

fig.show()
从plotly.subplot导入make_subplot
导入plotly.graph_对象作为go
#使用辅助y轴创建地物
图=生成子图(规格=[{“次要”:True}]]
#添加痕迹
图1添加_轨迹(
go.Scatter(x=[1,2,3],y=[40,50,60],name=“yaxis数据”),
二次_y=假,
)
图1添加_轨迹(
go.Scatter(x=[2,3,4],y=[4,5,6],name=“yaxis2数据”),
第二个y=真,
)
#添加图形标题
图1.2.2.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1(
title=“右边距”,
showlegend=False
)
#设置x轴标题
图:更新xaxes(title\u text=“xaxis title”)
#设置y轴标题
图:更新雅克斯(title\u text=“主雅克斯title”,secondary\u y=False)
图更新(title\u text=“secondary yaxis title”,secondary\u y=True)
图2(图3)
它将生成下图,不再居中:


我怎样才能去掉那个空白呢?

您可以在
图中指定边距。update\u layout()
。我将右边距设置为0

您还可以调整上、下和左页边距。 例如
margin=dict(l=50,r=50,b=50,t=50)


谢谢,这改善了图表。但是,如果你这样做的话,去掉轴的标题,看看宽度为1900和600的图表,你会发现在一种情况下,左轴到边框的距离比右轴大,反之亦然。右边框上有一个东西,它与图表大小成比例。设置相对于图表大小的边距是不可能的,但是。。。
# Add figure title
fig.update_layout(
    title="Right margin",
    showlegend=False,
    margin=dict(r=0)
)