Plotly:如何在折线图中将图例项形状从线更改为框或圆形?

时间:2021-03-26 09:46:11

标签: python plotly data-visualization plotly-dash plotly-python

我想将我的图例的项目形状从线更改为任何其他吸引人的形状,如盒子或圆形。 下面是我的图表。您可以看到图例项显示一条彩色线条。不是很吸引人。

如何在不更改图表类型的情况下更改图例项的形状?

my plot-line legend

以下是我的图例所需的项目形状示例。

desired-plot

1 个答案:

答案 0 :(得分:0)

希望使您的图例符号更具视觉吸引力而又不会弄乱图形痕迹的最佳选择似乎是:

fig.layout.legend.itemsizing = 'constant'

这将为您提供以下图例,其中的项目至少看起来更像一个盒子或矩形,而不是一条线:

enter image description here

取而代之的是:

enter image description here

一些细节:

默认情况下,图例的形状反映了您的轨迹的形状。这也适用于标记符号的大小和形状。因此,如果您构建这样的图:

enter image description here

然后您可以随时更改图例的显示方式:

fig.data[0].mode = 'markers+lines'
fig.data[0].marker.symbol = 'diamond'
fig.data[0].marker.size = 12

但问题是这适用于图形跟踪以及您在此处看到的:

enter image description here

并且我已经尝试设置标记符号,然后移除跟踪标记以希望在图例中保留标记。但这不起作用。我认为我们都过得更好。所以我最初的建议留给你。

完整代码:

# imports
import pandas as pd
import plotly.express as px

# data
df = px.data.stocks()
df = df.drop(['AMZN', 'AAPL', 'MSFT', 'FB'], axis = 1)
colors = px.colors.qualitative.T10

# plotly
fig = px.line(df, 
                 x = 'date',
                 y = [c for c in df.columns if c != 'date'],
                 template = 'plotly_dark',
                 color_discrete_sequence = colors,
                 title = 'Stocks', 
             )
fig.data[0].mode = 'markers+lines'
fig.data[0].marker.symbol = 'diamond'
fig.data[0].marker.size = 12

fig.layout.legend.itemsizing = 'constant'
fig.show()