Plotly:次要 y 轴导致右侧空白
Posted
技术标签:
【中文标题】Plotly:次要 y 轴导致右侧空白【英文标题】:Plotly: Secondary y-axis causes empty space on the right 【发布时间】:2020-12-10 20:49:41 【问题描述】:我正在制作一个带有大量数据的图表,这些数据以超高分辨率运行。在添加第二个 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()
它产生以下图表,不再居中:
empty_space_on_the_right
我怎样才能摆脱那个空白?
【问题讨论】:
【参考方案1】:您可以在fig.update_layout()
中指定边距。我将右边距设置为 0。
您还可以调整上边距、下边距和左边距。
例如
margin = dict(l=50, r=50, b=50, t=50)
# Add figure title
fig.update_layout(
title="Right margin",
showlegend=False,
margin=dict(r=0)
)
【讨论】:
谢谢,这改进了图表。但是,如果你这样做,删除轴标题并查看宽度为 1900 和宽度为 600 的图表,你会发现在一种情况下,左轴到边界的距离比右轴大,反之亦然反之亦然。右侧边框上有一些随图表大小缩放的东西。虽然无法设置相对于图表大小的边距...【参考方案2】:当包含secondary_y
时,计算水平尺寸时似乎有问题。这可以通过更改specs
传递的边距来修复:
fig = make_subplots(specs=[["secondary_y": True,"r":-0.06]])
在这种情况下,您可以调整大小,并且两边与边框的距离相同。
【讨论】:
以上是关于Plotly:次要 y 轴导致右侧空白的主要内容,如果未能解决你的问题,请参考以下文章