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

Plotly: How to change the size of the lines displayed in the legend?

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

我创建了这张图:

而且我想在图例中将试验 1、试验 2 和试验 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)),
)

试了试物品大小,也一无所获。有人知道如何实现吗?

更新:

根据下面的答案,我可以把线加粗,但有一个限制。附上我认为的厚度极限(不知道具体尺寸)

答案:

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

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

由于您还没有生成可运行的代码片段,我将使用来自 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()