Plotly:如何更改图例中显示的线条的大小?

Posted

技术标签:

【中文标题】Plotly:如何更改图例中显示的线条的大小?【英文标题】:Plotly: How to change the size of the lines displayed in the legend? 【发布时间】:2021-01-23 21:49:48 【问题描述】:

我很难在情节上使传说更大。我已经用尽了文档、论坛、github 问题,但一无所获。开始有情节地思考并不是软件那么好。

我创建了这个图表:

我想让 Trial 1、Trial 2 和 Trial 3 的图例中的线条变大。 我可以使用他们的 api 使字体更大,但我没有看到对图例行的引用,现在想知道它是否可能。

这是一些代码:


fig.update_layout(
    title_text="Dipole Moment X (0 V/nm)",
    title_font=dict(size=44, family='Arial'),
    template='simple_white',
    xaxis_tickformat = 'i',
    bargap=0.2, # gap between bars of adjacent location coordinates,
    legend=dict(
        orientation="h",
        yanchor="bottom",
        y=1.02,
        xanchor="right",
        x=1,  
        font = dict(family = "Arial", size = 60),
        bordercolor="LightSteelBlue",
        borderwidth=2,
        itemsizing='trace'
    ),
    legend_title = dict(font = dict(family = "Arial", size = 60)),
)

玩弄了项目大小,也一无所获。任何人都知道如何做到这一点?

更新

根据下面的答案,我能够使线条变粗,但有一个限制。并附上我认为的厚度极限(不知道具体尺寸)

【问题讨论】:

感谢您将我的建议标记为已接受的答案。我看到你也收到了很多关于其他问题的有用建议,但很多都没有被接受。请检查您的问题,看看是否有许多答案值得在那里接受(免责声明:其中一个来自我)。 没错,我刚刚加入了一个博士课程(1 个月),到目前为止它真的很紧张,所以我有一个积压的社区软件清单。我实际上很快就会检查出的次要情节。 好的,感谢您的反馈。恭喜你开始攻读博士学位! 【参考方案1】:

答案:

根据您设置图的方式,您可以使用:

fig.update_layout(legend=dict(itemsizing='constant'))

或者:

fig.update_layout(legend=dict(itemsizing='trace'))
fig.update_traces(line=dict(width=12))

详情:

在设置图形时,您似乎选择了非常细的线条。您可以使用以下方法将图例中线条的宽度与跟踪线的宽度“分离”:

fig.update_layout(legend=dict(itemsizing='constant'))

由于您还没有生成可运行的代码 sn-p,我将使用来自 px.data.gapminder() 的数据来展示效果。

情节 1 - 没有fig.update_layout(legend=dict(itemsizing='constant'))

情节 2 - 使用fig.update_layout(legend=dict(itemsizing='constant'))

您的第三个选项是设置fig.update_layout(legend=dict(itemsizing='trace')),然后使用例如fig.update_traces(line=dict(width=12)) 来增加迹线图例的线宽:

情节 3 - 使用fig.update_layout(legend=dict(itemsizing='trace'))

包含所有可用选项的完整代码

import plotly.express as px

df = px.data.gapminder().query("continent=='Oceania'")
fig = px.line(df, x="year", y="lifeExp", color='country')

fig.update_layout(showlegend=True)
fig.update_layout(legend = dict(bgcolor = 'yellow'))

#fig.update_layout(legend=dict(itemsizing='constant'))
fig.update_layout(legend=dict(itemsizing='trace'))
fig.update_traces(line=dict(width=12))

fig.show()

【讨论】:

以上是关于Plotly:如何更改图例中显示的线条的大小?的主要内容,如果未能解决你的问题,请参考以下文章

ggplot图形上线条的动态形状和大小变化创建第二个图例[重复]

MATLAB R2019a 不会显示原始线条的图例

更改线宽时,Seaborn FacetGrid图例会丢失线条样式细节

使用 Plotly Express 更改线条颜色

绘图图例显示未知项目/相同的图例项目以不同的线条显示两次

即使自定义图例单击以使其不可见,如何在折线图中至少显示一行