绘图图形周围的边框

问题描述 投票:0回答:1

我有一些我喜欢的

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()

what I have

我希望它创建更像这样的东西,在整个图的边缘周围有一个边框(不一定是绿色)。

enter image description here

(我在 Paint 中制作了该边框,但无法对我生成的每个图表都这样做。)

这些图可能必须显示在 Jupyter Notebook 中,而不仅仅是在保存的图像文件中。

plotly
论坛上的讨论涉及如何摆脱边框,但我不明白边框是如何到达那里的,更不用说我如何自定义边框了。

python jupyter-notebook graphics plotly
1个回答
0
投票

您可以使用

fig.add_shape()
添加形状作为注释,并使用纸张坐标使外部边界包围绘图区域。
我认为下面使用您的代码作为基础的内容接近您在 Paint 中添加的内容,并在
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")

© www.soinside.com 2019 - 2024. All rights reserved.