今天给大家推荐一个可视化神器 - Plotly_express ,上手非常的简单,基本所有的图都只要一行代码就能绘出一张非常酷炫的可视化图。
以下是这个神器的详细使用方法,文中附含大量的 GIF 动图示例图。
1. 环境准备
本文的是在如下环境下测试完成的。
- Python3.7
- Jupyter notebook
- Pandas1.1.3
- Plotly_express0.4.1
其中 Plotly_express0.4.1 是本文的主角,安装它非常简单,只需要使用 pip install 就可以
$ python3 -m pip install plotly_express
2. 工具概述
在说 plotly_express
之前,我们先了解下 plotly
。Plotly
是新一代的可视化神器,由 TopQ
量化团队开源。虽然 Ploltly
功能非常之强大,但是一直没有得到重视,主要原因还是其设置过于繁琐。因此,Plotly
推出了其简化接口:Plotly_express
,下文中统一简称为 px
。
px
是对 Plotly.py
的一种高级封装,其内置了很多实用且现代的绘图模板,用户只需要调用简单的 API 函数即可实用,从而快速绘制出漂亮且动态的可视化图表。
px
是完全免费的,用户可以任意使用它。最重要的是,px
和 plotly
生态系统的其他部分是完全兼容的。用户不仅可以在 Dash
中使用,还能通过 Orca
将数据导出为几乎任意文件格式。
官网的学习资料:https://plotly.com/
px 的安装是非常简单的,只需要通过 pip install plotly_express
来安装即可。安装之后的使用:
import plotly_express as px
3. 开始绘图
接下来我们通过 px 中自带的数据集来绘制各种精美的图形。
- gapminder
- tips
- wind
3.1 数据集
首先我们看下 px
中自带的数据集:
import pandas as pd
import numpy as np
import plotly_express as px # 现在这种方式也可行:import plotly.express as px
# 数据集
gapminder = px.data.gapminder()
gapminder.head() # 取出前5条数据
我们看看全部属性值:
3.2 线型图
线型图 line 在可视化制图中是很常见的。利用 px 能够快速地制作线型图:
# line 图
fig = px.line(
gapminder, # 数据集
x="year", # 横坐标
y="lifeExp", # 纵坐标
color="continent", # 颜色的数据
line_group="continent", # 线性分组
hover_name="country", # 悬停hover的数据
line_shape="spline", # 线的形状
render_mode="svg" # 生成的图片模式
)
fig.show()
再来制作面积图:
# area 图
fig = px.area(
gapminder, # 数据集
x="year", # 横坐标
y="pop", # 纵坐标
color="continent", # 颜色
line_group="country" # 线性组别
)
fig.show()
3.3 散点图
散点图的制作调用 scatter
方法:
指定 size 参数还能改变每个点的大小:
px.scatter(
gapminder2007 # 绘图DataFrame数据集
,x="gdpPercap" # 横坐标
,y="lifeExp" # 纵坐标
,color="continent" # 区分颜色
,size="pop" # 区分圆的大小
,size_max=60 # 散点大小
)
通过指定 facet_col
、animation_frame
参数还能将散点进行分块显示:
px.scatter(
gapminder # 绘图使用的数据
,x="gdpPercap" # 横纵坐标使用的数据
,y="lifeExp" # 纵坐标数据
,color="continent" # 区分颜色的属性
,size="pop" # 区分圆的大小
,size_max=60 # 圆的最大值
,hover_name="country" # 图中可视化最上面的名字
,animation_frame="year" # 横轴滚动栏的属性year
,animation_group="country" # 标注的分组
,facet_col="continent" # 按照国家country属性进行分格显示
,log_x=True # 横坐标表取对数
,range_x=[100,100000] # 横轴取值范围
,range_y=[25,90] # 纵轴范围
,labels=dict(pop="Populations", # 属性名字的变化,更直观
gdpPercap="GDP per Capital",
lifeExp="Life Expectancy")
)
3.4 地理数据绘图
在实际的工作中,我们可能会接触到中国地图甚至是全球地图,使用 px 也能制作:
px.choropleth(
gapminder, # 数据集
locations="iso_alpha", # 配合颜色color显示
color="lifeExp", # 颜色的字段选择
hover_name="country", # 悬停字段名字
animation_frame="year", # 注释
color_continuous_scale=px.colors.sequential.Plasma, # 颜色变化
projection="natural earth" # 全球地图
)
fig = px.scatter_geo(
gapminder, # 数据
locations="iso_alpha", # 配合颜色color显示
color="continent", # 颜色
hover_name="country", # 悬停数据
size="pop", # 大小
animation_frame="year", # 数据帧的选择
projection="natural earth" # 全球地图
)
fig.show()
px.scatter_geo(gapminder, # 数据集
locations="iso_alpha", # 配和color显示颜色
color="continent", # 颜色的字段显示
hover_name="country", # 悬停数据
size="pop", # 大小
animation_frame="year" # 数据联动变化的选择
#,projection="natural earth" # 去掉projection参数
)
使用 line_geo 来制图:
fig = px.line_geo(
gapminder2007, # 数据集
locations="iso_alpha", # 配合和color显示数据
color="continent", # 颜色
projection="orthographic") # 球形的地图
fig.show()
这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
优快云大礼包:全网最全《全套Python学习资料》免费分享🎁
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
因篇幅有限,仅展示部分资料
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
5️⃣Python兼职渠道
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓