可视化神器Plotly的图例legend精讲

公众号:尤而小屋
作者:Peter
编辑:Peter

大家好,我是Peter~

很久没有更新Plotly相关的文章,国庆这几天终于干了一篇。选择的主题是: 玩转Plotly图例设置 ,也是一直以来都想写的一个话题,文章的主要内容为:

barmode="stack", # 柱状图模式 facet_col="sex", # 切面图的列元素 category_orders={"day": ["Thur", "Fri", "Sat", "Sun"], # 自定义顺序 "smoker": ["Yes", "No"], "sex": ["Male", "Female"]}) fig.update_layout(legend_traceorder="reversed") # 设置顺序 fig.show()

通过plotly.graph_objects绘图

我们主要是通过参数 legendrank 来设置顺序 。注意: plotly的版本必须在V5.0及以上

pip install --upgrade plotly  # 升级版本

如果我们不使用legendrank参数:

fig = go.Figure()
# 添加4个不同的轨迹数据
fig.add_trace(go.Bar(name="first", x=["a", "b"], y=[21,27]))
fig.add_trace(go.Bar(name="second", x=["a", "b"], y=[32,18]))
fig.add_trace(go.Bar(name="third", x=["a", "b"], y=[11,32]))
fig.add_trace(go.Bar(name="fourth", x=["a", "b"], y=[21,13]))
fig.show()

上面图例出现的顺序就是first 、second、third、fourth的顺序,也就是在添加轨迹数据的顺序。

下面我们使用legendrank参数:

fig = go.Figure()
# 添加4个不同的轨迹数据
fig.add_trace(go.Bar(name="second",  # 2
                     x=["a", "b"], 
                     y=[32,18],
                     legendrank=2))
fig.add_trace(go.Bar(name="third",  # 3
                     x=["a", "b"],
                     y=[11,32],
                     legendrank=3))
fig.add_trace(go.Bar(name="first",  # 1
                     x=["a", "b"], 
                     y=[21,27],
                     legendrank=1))
fig.add_trace(go.Bar(name="fourth",  # 4
                     x=["a", "b"], 
                     y=[21,13],
                     legendrank=4))
fig.show()
fig.update_layout(legend=dict(
#     orientation="h",  # 控制水平显示
    yanchor="bottom",  # 分别设置xy轴的位置和距离大小
    y=1.02,
    xanchor="right",
fig.show()