我有一些我喜欢的
plotly
图,在展示它们之前只需要最后一张:整个图形周围的边框。我已经通过 matplotlib.pyplot
和 fig.patch.set_linewidth
让它在 fig.patch.set_edgecolor
中工作,但我在 plotly
中没有成功。
有没有一个简单的函数可以像
plotly
中那样在我的整个 matplotlib
图形周围添加边框?
从下面的代码中,我得到了这个。
import plotly.graph_objects as go
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [1, 3, 2, 4, 3, 5, 4, 6, 5, 6]
fig = go.Figure(data=go.Scatter(x = x, y = y))
fig.show()
我希望它创建更像这样的东西,在整个图的边缘周围有一个边框(不一定是绿色)。
(我在 Paint 中制作了该边框,但无法对我生成的每个图表都这样做。)
这些图可能必须显示在 Jupyter Notebook 中,而不仅仅是在保存的图像文件中。
plotly
论坛上的讨论涉及如何摆脱边框,但我不明白边框是如何到达那里的,更不用说我如何自定义边框了。
您可以使用
fig.add_shape()
添加形状作为注释,并使用纸张坐标使外部边界包围绘图区域。fig.add_shape
之前添加 fig.show();
:
import plotly.graph_objects as go
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [1, 3, 2, 4, 3, 5, 4, 6, 5, 6]
fig = go.Figure(data=go.Scatter(x = x, y = y))
# add a shape based on https://plotly.com/python/shapes/ and https://plotly.com/python/text-and-annotations/ saying "there is a shape equivalent to text annotations."
# needed to get position correct, see https://plotly.com/python/text-and-annotations/#adding-annotations-with-xref-and-yref-as-paper and https://plotly.com/python/figure-structure/#positioning-with-paper-container-coordinates-or-axis-domain-coordinates
fig.add_shape(type="rect",
xref="paper", yref="paper",
x0=-0.06, y0=-0.3, x1=1.06, y1=1.3,
line=dict(
#color="RoyalBlue",
color="limegreen", #named colors from https://stackoverflow.com/a/72502441/8508004
width=2,
),
#fillcolor="LightSkyBlue",
)
fig.show();
代码中的注释引用了有助于调整代码以实现此目的的文档或 StackOverflow 问题。最主要的是 Plotly 的文档页面“Python 中的文本和注释” 说,“有一个相当于文本注释的形状”并链接到 “Python 中的形状”的文档。
使用“纸张”坐标的线索来自OP链接的
论坛帖子中的那行
fig.update_layout(paper_bgcolor="#25499F")
。