酷炫!可视化神器Plotly玩转饼图
之前发表过两篇关于Plotly的文章:
Plotly绘图最大的特点就是代码量少、图形颜色好看而且动态可视化,以后会连载Plotly绘图系列。
导入库
本文中使用的环境:
- Python3.7.5
- jupyter notebook
- plotly4.11.0
- plotly-express0.4.1
1 | import pandas as pd |
主要是通过两种方法制作饼图:
- plotly_express:px.pie
- plotly.graph_objects:go.Pie
基于Plotly_express实现饼图
默认饼图
使用模拟的数据生成的基础饼图,生成了一个水果店5种水果的数量:
1 | fruit = pd.DataFrame({ |
1 | fig = px.pie(fruit,names="name",values="number") |
默认显示的是占比和右侧的分类名称
添加标题
1 | fig = px.pie(fruit, |
⚠️:标题默认是在右上角,有时候我们想要标题居中,如何实现呢?
1 | fig = px.pie(fruit, |
改变饼图颜色
通过上面饼图的制作,我们已经看到了Plotly_express的默认颜色,下面我们改变饼图的颜色:
1、通过参数color改变颜色:
1 | fig = px.pie(fruit, |
2、通过参数color_discrete_sequence设置:
1 | fig = px.pie(fruit, |
上面的饼图展示了3种不同的颜色
3、通过字典形式设置颜色:
1 | fig = px.pie(fruit, |
文本信息设置
很多情况下我们想对显示在饼图中的文本信息进行设置
1、默认的饼图是显示百分比,改变显示的数据:
1 | fig = px.pie(fruit,names="name",values="number") |
上面的饼图中多显示了各种水果的名称:名称+百分比
1 | fig = px.pie(fruit,names="name",values="number") |
上面的饼图中显示的是:数值+百分比
2、改变显示数据的位置,默认是在扇形区域内,可以设置成显示在外面:
1 | fig = px.pie(fruit,names="name",values="number") |
3、文本隐藏
比如Plotly中自带的数据绘制的饼图:
1 | df = px.data.gapminder().query("year == 2007").query("continent == 'Europe'") |
百分比过低的某些数据,我们想隐藏不显示:
1 | fig = px.pie(gap, values='pop', names='country') |
uniformtext_mode设置成False:
4、文本信息显示方向
文本信息有3种显示方向:horizontal、radial、tangential
,默认是水平方向horizontal
显示的
1 | # 默认效果是水平 |
甜甜圈图-Donut chart
甜甜圈图就是通过中间挖空来实现的,使用参数hole:
1 | fig = px.pie(fruit, |
基于go.Pie实现
基础饼图制作
1 | import plotly.graph_objects as go |
个性化边框设置
1 | import plotly.graph_objects as go |
文本方向设置
1 | import plotly.graph_objects as go |
甜甜圈图
1 | import plotly.graph_objects as go |
扇形区域脱离
1 | import plotly.graph_objects as go |
多饼图制作
这是来自官网的例子,讲解的是如何设置多饼图
1 | from plotly.subplots import make_subplots |
1 | import plotly.graph_objects as go |
旭日图制作
旭日图表示数据层级之间的大小关系:
1、基础旭日图
1 | import plotly.express as px |
2、基于DataFrame长表的旭日图
1 | fig = px.sunburst(tips, |
2、改变旭日图颜色
1 | df = px.data.tips() |
3、通过color_continuous_scale参数改变
1 | # 设置旭日图颜色 |
参数备忘录
基于plotly.express.pie的参数
1 | plotly.express.pie( |
尤而小屋,一个温馨的小屋。小屋主人,一手代码谋求生存,一手掌勺享受生活,欢迎你的光临😃