【问题标题】:Plotly: How to rename legend elements of a plotly express stacked bar plot?Plotly:如何重命名 plotly express 堆积条形图的图例元素?
【发布时间】:2021-10-27 18:46:48
【问题描述】:
我使用 plotly 网站中给出的这个示例代码。
import plotly.express as px
long_df = px.data.medals_long()
fig = px.bar(long_df, x="nation", y="count", color="medal", title="Long-Form Input")
fig.show()
这给出了如下图。
如何重命名图例以将金、银和铜替换为第一、第二和第三?
【问题讨论】:
标签:
python
plotly
bar-chart
legend
plotly-express
【解决方案1】:
我经常使用这种方法
fig.for_each_trace(lambda t: t.update(name = newnames[t.name]))
其中名称是dict:
newnames = {'gold':'1', 'silver': '2', 'bronze':'3'}
剧情:
完整代码:
import plotly.express as px
long_df = px.data.medals_long()
fig = px.bar(long_df, x="nation", y="count", color="medal", title="Long-Form Input")
newnames = {'gold':'1', 'silver': '2', 'bronze':'3'}
fig.for_each_trace(lambda t: t.update(name = newnames[t.name]))
fig.show()
【解决方案2】:
将数据映射到您想要的值
import plotly.express as px
long_df = px.data.medals_long()
fig = px.bar(long_df, x="nation", y="count",
color=long_df["medal"].map({"gold":"first","silver":"second","bronze":"third"}),
title="Long-Form Input")
fig.show()