Plotly Express 可视化使用指南
出品:Python 数据之道
作者:阳哥
22 Jul, 2021
Contents
1 Plotly Express 可视化使用指南 3
1.1 环境与数据准备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2
线形图(
Line
)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 面积图(Area) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 散点图(Scatter) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 饼图(Pie) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.6 柱状图(Bar) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7 箱形图(Box) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.8 小提琴图(Violin) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.9 联合分布图(Marginal) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.10 直方图(Histogram) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.11 漏斗图(Funnel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.12 平行坐标图(Parallel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.13 密度图(Density) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.14 极坐标图(Polar) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.15 图片显示(Imshow) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.16 旭日图(Sunburst) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.17 甘特图(Timeline) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.18 树形图(Treemap) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
1.19 三维散点图(Scatter 3D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.20 地图(Map) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.21 颜色(Colors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
1.22 Plotly 生态系统的一部分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2 延伸阅读 66
2.1 我是谁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.2 延伸阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2
1 Plotly Express 可视化使用指南
Plotly Express 是 Python 交互式可视化库 Plotly 的高级组件,受 Seaborn 和 ggplot2 的启发,它专门设计
为具有简洁,一致且易于学习的 API :只需一次导入,您就可以在一个函数调用中创建丰富的交互式绘图,包括分面绘
图(faceting)、地图、动画和趋势线等。
使用 Plotly Express 可以轻松地进行数据可视化,一旦导入 Plotly Express(通常简称 px ),大多数绘图只需
要一个函数调用,接受一个整洁的 Pandas dataframe,并简单描述你想要制作的图。如果你想要一个基本的散点图,
它只是px.scatter(dataframe,x =“column_name”,y =“column_name”)。
Plotly Express 语法简洁,同时功能强大,可以绘制咱们遇到的大部分图表类型,比如线形图、散点图、柱状图、
面积图、树形图、旭日图、甘特图等,本文将从如下 20 个方面,详细介绍 Plotly Express 的使用,看完内容介绍后,
相应你也会喜欢上这个工具的。
3
Chapter 1. Plotly Express 可视化使用指南 Python 数据之道
Figure 1.1: 目录
http://liyangbit.com 4
Chapter 1. Plotly Express 可视化使用指南 Python 数据之道
1.1 环境与数据准备
1.1.1 环境准备
现在 Plotly Express 不需要单独安装,它是包含在 Plotly 中的,用 pip install plotly 命令可以安装
Plotly,如果你用的是 Anaconda,也可以用 conda install plotly 命令来安装,然后导入如下:
1 import plotly.express as px
本文中,还用到 Pandas 等工具,完整的导入如下:
1 import plotly.express as px
2 import plotly.io as pio
3 import plotly.graph_objects as go
4 import pandas as pd
本文代码测试的时候,使用的环境如下:
• Mac 系统
• Jupyter Notebook
• Python 版本为 v3.8
• Plotly version: 5.1.0
• Pandas version: 1.3.0rc1
1.1.2 数据准备
本文涉及的图形种类比较多,原本阳哥想用一份数据来覆盖这些图形的,后来发现不太现实,因此使用了多份数据。
对于大部分图形,阳哥在文中使用的是 covid-19 的数据,此外,还使用了跟股票投资相关的一些数据。
这里,先介绍下 covid-19 相关的数据。
我们需要读取并整理出需要的 DataFrame,以便在后续可视化时使用。
分为三个小的步骤
(a) 读取数据及调整格式
1 data = pd.read_csv('./data/covid-19.csv',parse_dates=['date'],index_col=0)
2
3 # 将 数 据 复 制 一 份
4 df_all = data.copy()
5
6 # 将 时 间 格 式 转 为 字 符 串 格 式 的 日 期 , 以 YYYY-mm-dd 的 形 式 保 存
7 df_all['dates'] = df_all['date'].apply(lambda x:x.strftime('%Y-%m-%d'))
8
9 # 添 加 现 存 确 诊 列
10 df_all['current'] = df_all['confirmed'] - df_all['cured'] - df_all['dead']
11
12 df_all.fillna('', inplace=True)
http://liyangbit.com 5
评论0