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()
我真的很难在情节上让传说变得更大。我已经用尽了文档、论坛、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()