Plotly高级绘图:玩转图例Legend
很久没有更新Plotly相关的文章,国庆这几天终于干了一篇。选择的主题是:玩转Plotly图例设置,也是一直以来都想写的一个话题,文章的主要内容为:
官网学习地址:https://plotly.com/python/legend/
Plotly连载文章
Plotly文章目前已经更新到第16篇,欢迎阅读。
导入库和数据
本文中主要使用的数据是消费数据:
1 | import pandas as pd |
图例元素个数
主要是单个元素和多个元素组成的图例。
单个元素
1 | fig = px.scatter( |
多个元素组成的图例
多个元素同时区分的时候,会生成不同的形状来进行数据的展示:
1 | fig = px.scatter( |
改变图例名称
在使用plotly_express的时候主要使用labels参数来修改图例名称
1 | fig = px.scatter( |
还可以生成具有多个切面图形的图形:
1 | fig = px.scatter( |
设置图例顺序
通过plotly_express绘图
通过参数legend.traceorder来设置图例的顺序
1 | fig = px.bar( |
⚠️默认情况下是根据现实图例的字段在原始数据中出现的顺序:
1 | fig = px.bar( |
通过plotly.graph_objects绘图
我们主要是通过参数 legendrank 来设置顺序 。注意:plotly的版本必须在V5.0及以上
1 | pip install --upgrade plotly # 升级版本 |
如果我们不使用legendrank参数:
1 | fig = go.Figure() |
上面图例出现的顺序就是first 、second、third、fourth的顺序,也就是在添加轨迹数据的顺序。
下面我们使用legendrank参数:
1 | fig = go.Figure() |
添加trace的顺序不同是first、second等,实际上还是按照legendrank参数来排序
显示和隐藏图例
上面的所有图形在默认情况下是显示图例出来,我们也可以来进行隐藏:
1 | # 隐藏图例 |
图例位置
图例默认情况下是在右边的,我们可以使用参数来改变图例位置
1 | # 默认情况:图例在右上角 |
通过参数的设置来改变图例的位置:
1 | # 默认情况 |
图例水平化
默认情况图例是垂直显示,通过参数orientation来实现水平显示。当图例的分类情况很多的时候,这个水平化显示非常使用。
本案例使用的plotly中的gdp数据:
默认图例是垂直显示:
1 | df = px.data.gapminder().query("year==2007") # 选择2007数据 |
下面我们来开启水平显示图例:
1 | # 开启水平显示 |
图例个性化显示
1 | fig = px.scatter( |
Graph Objects设置图例
下面的多个案例都是基于plotly.graph_objects来进行图例的设置:
图例名称
1 | fig = go.Figure() |
图例标题
1 | fig = go.Figure() |
显示或隐藏图例
1 | import plotly.graph_objects as go |
设置图例元素大小
1 | import plotly.graph_objects as go |
当itemsizing取值为constant:
当itemsizing取值为trace: