高级可视化神器Plotly_Express快速入门
Plotly_Express
是新一代的高级可视化神器,它是plotly.py的高级封装,内置了大量实用、现代的绘图模板。
使用者只需要调用简单的API函数,便可快速地生成漂亮的动态可视化图表;同时其内置了很多的数据集,方便自行调用,快速模拟作图。
安装
用pip install plotly_express
命令可以安装 plotly_express
1 | pip install plotly_express |
内置数据集
先导入相关库,进行查看数据集:
1 | import pandas as pd |
GDP数据
记录的是不同国家历年GDP收入与人均寿命,包含的字段:
- 国家country
- 洲continent
- 年份year
- 平均寿命lifeExp
- 人口数量pop
- GDPgdpPercap
- 国家简称iso_alpha
- 国家编号iso_num
餐厅流水数据
餐厅的订单流水数据,包含字段:
- 总账单费用bill
- 小费tip
- 顾客性别sex
- 顾客是否抽烟smoker
- 就餐日期day
- 就餐时间time
- 就餐人数size
鸢尾花数据集
著名的鸢尾花数据集,包含字段:
- 萼片长sepal_length
- 萼片宽sepal_width
- 花瓣长petal_length
- 花瓣宽petal_width
- 花的种类species
- 种类所属编号species_id
风力数据
一份关于风力等级的数据:
- 方向direction
- 强度strength
- 频率frequency
选举投票结果
该数据集记录的是2013年蒙特利尔市长选举
投票结果,包含的主要字段:
- 区域district
- Coderre票数
- Bergeron票数
- Joly票数
- 总票数total
- 胜者winner
- 结果result
- 区编号district_id
汽车共享可用性数据
该数据记录的是蒙特利尔一个区域中心附近的汽车共享服务的可用性,包含的字段:
- 纬度centroid_lat
- 经度centroid_lon
- 汽车小时数car_hours
- 高峰小时peak_hour
股票数据
内置的一份股票数据,包含字段:
- 日期date
- 6个公司名称:GOOG、AAPL、AMZN、FB、NFLX、MSFT
内置颜色面板
plotly_express
还内置了很多颜色面板,颜色任你选择,下面是各个主题下的部分截图:
卡通片主题
1 | px.colors.carto.swatches() |
CMOcean系列
1 | px.colors.cmocean.swatches() |
ColorBrewer2系列
1 | px.colors.colorbrewer.swatches() |
周期性色调
适用于具有自然周期结构的连续数据
1 | px.colors.cyclical.swatches() |
分散色标
适用于具有自然中点的连续数据
1 | px.colors.diverging.swatches() |
定性色标系列
适用于没有自然顺序的数据
1 | px.colors.qualitative.swatches() |
顺序色标系列
渐变的颜色系列,适用于大多数连续数据
1 | px.colors.sequential.swatches() |
作图
下面介绍使用Plotly_express绘制常见的图形,所有的图形在jupyter notebook中都是动态可视化的,本文中采用截图展示。
柱状图
1 | # 指定选取国家:Switzerland |
1 | px.bar(Switzerland, # 上面指定的数据 |
具体结果如下:
散点图
先选取绘图需要的数据:
1 | # 写法1 |
1 | px.scatter(gapminder_2002, # 传入的数据集 |
冒泡散点图
1 | px.scatter(gapminder_2002 # 绘图DataFrame数据集 |
散点矩阵图
1 | px.scatter_matrix(iris, # 传入绘图数据 |
面积图
1 | # area 图 |
股票趋势图
1 | # FB公司股票趋势图 |
饼图
1、我们使用小费tips数据,查看前5行数据:
2、根据day分组,统计total_bill字段的和
3、绘制饼图,自动显示每个day的占比
1 | px.pie(total_bill_byday, # 绘图数据 |
旭日图
1 | # 选取2002年数据 |
漏斗图
漏斗图形在互联网的电商、用户分群等领域使用的比较广泛,自行模拟一个电商UV-付款转化的数据绘图:
1 | data = dict( # 创建原始数据 |
加入一个颜色参数color,改变每个阶段的颜色:
1 | data = dict( # 创建原始数据 |
直方图
1 | px.histogram( |
联合分布图
多种图形的组合显示:
1 | px.scatter( |
箱型图
1 | # notched=True显示连接处的锥形部分 |
小提琴图
1 | px.scatter(iris, # 传入数据 |
等高线图
1 | px.density_contour(iris, # 数据集 |
还可以绘制密度等值线图;
1 | px.density_heatmap(iris, # 传入数据 |
密度热力图
数据的设置和密度等值图相同,只是选择的图形种类不同:
1 | px.density_heatmap( # 密度热力图 |
并行分类图
1 | px.parallel_categories( |
3D散点图
使用的是选举结果数据集:
1 | px.scatter_3d( |
3D线型图
1 | px.line_3d( |
基于地图的图形
基于choropleth分布的地图:
1 | px.choropleth( |
基于line_geo线型地图:
1 | px.line_geo( |
矩阵式树状结构图
矩阵式树状结构图是一种用于分层数据的复杂、基于区域的数据展示图形:
1 | # 选取2002年数据 |
散点极坐标图
1 | px.scatter_polar( # 散点极坐标 |
线性极坐标图
1 | px.line_polar( # 线性极坐标 |
柱状极坐标图
1 | px.bar_polar( # 柱状图极坐标图 |
内置主题
Plotly_Express内置了3种主题可供选择:
- plotly
- plotly_white
- plotly_dark
1 | px.scatter(gapminder_2002, # 传入的数据集 |
总结
本文详细介绍了一个新的高级可视化库Plotly_Express,从其简介、安装、内置的颜色面板、主题到各种图形的绘制。
这个库最大的特点:代码量非常少,图形种类全,基本上一行代码就能绘制出非常精美的动态可视化图形。以后会介绍更多关于plotly_express的使用文章,特别是plotly
和dash
的结合,更是无比强大。敬请期待!