plotnine
plotnine简介
Python语言
的plotnine
包类似于R语言
的ggplot2
包,两者的使用方式和语法相似
plotnine优点
plotnine
的代码简洁且易学、绘制的图流畅大方即很少的代码实现不同图形的绘制
plotnine安装
plotnine
可用pip
包管理工具、conda
环境、mamba
环境进行plotnine的安装
- pip安装命令为:
pip install plotnine -i https://pypi.tuna.tsinghua.edu.cn/simple
- conda环境命令为:
conda install plotnine
- mamba环境命令为:
mamba install plotnine
plotnine导入
plotnine
在代码中须先导入才能用其函数绘图,导入代码为:from plotnine import *
plotnine底层
plotnie
与ggplot2
底层都基于Wilkinson
《Grammar of Graphics》一书中的图形语法
plotnine构成
Plot
= Data
+ Aesthetics
+ Geometry
+ Facets
+Statistics
+Coordinates
+Theme
- plot(图)主要是绘制出的图
- Data(数据集)主要是 data frame
- Aesthetics(美学映射)主要是x,y坐标轴、颜色、大小等图形属性
- Geometry(几何对象)主要是柱形图、直方图、散点图、线图、密度图等
- Facets(分面)主要是指将绘图窗口划分为若干个子窗口,以生成不同子集的图形
- Statistics(统计变换)主要是各种不同统计变换函数,如:stat_smooth()平滑变换
- Coordinates(坐标系)主要是生成坐标系,比如:coord_cartesian() 笛卡尔坐标系
- Theme(主题)主要是用来修改绘图的背景主题,如:theme_dark() 黑暗背景主题
plotnine函数
ggplot()
底层绘图函数,包括data frame、color、size、shape等
geom_xxx()
不同图层绘制函数,主要包括geom_point()、geom_line()等
stat_xxx()
统计变换函数,包括stat_smooth()、stat_ecdf()、stat_qq()等
scale_xxx()
度量调整函数,主要包括color(颜色)、size、shape(形状)
coord_xxx()
笛卡尔坐标系函数,暂时不能实现极坐标系和地理空间坐标系
facet_xxx()
分面系统函数,包括了按行、按列、按网格等形式分面的绘图
guides_xxx()
图例调整函数,主要包括了连续型、离散型两种类型的图例
theme()
主题设置函数,主要包括了图表背景颜色、网格线的间隔与颜色等
plotnine语法
语法为:(ggplot()+geom_xxx()+stat_xxx()+facet_xxx()+scale_xxx()+theme())
plotnine扩展
修改虚拟环境安装包的默认路径
找到虚拟环境对应的lib/site.py文件,修改其中的user_site(用户包)和user_base(用户脚本)
修改python大环境安装包的默认路径
找到python环境下lib/site.py文件,修改其中的user_site(用户包)和user_base(用户脚本)
Pycharm中找不到已经正常安装的三方包
重启Pycharm IDE,让其重新检索加载新安装的三方包
Jupyter Notebook打不开
重启电脑或者百度相关教程即可解决
plotnine问题
ReadTimeoutError读取超时错误
- 产生场景
Pycharm中通过pip安装plotnine时发生
- 错误原因
pip._vendor.urllib3.exceptions.ReadTimeoutErrorHTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
- 解决办法
# 设置安装找寻的等待时间为100ms
pip install --default-timeout=100 plotnine
ModuleNotFoundError模块未找到错误
- 产生场景
Pycharm中通过pip成功安装plotnine后,导入时却报错提示没有此包
- 错误原因
ModuleNotFoundError: No module named 'plotnine'
- 解决办法
# pip安装的包会在lib/site_packages(原生Python)或在envs/lib/site_packages(虚拟环境)
使用pip show packagename(pip show plotnine) 查看包的位置,然后根据包选择对应Python解释器
PackagesNotFoundError包未找到错误
- 产生场景
在Anaconda PowerShell Prompt(anaconda3)通过aconda环境安装plotnine,报通道无此包的错误
- 错误原因
The following packages are not available from current channels: - plotnine
- 解决办法
# 首先登录conda官网(https://anaconda.org/),然后在搜索框搜索plotnine包,最后官网提供地址安装
# 如果此命令一直重复卡死执行,可用 Ctrl + C 强制中断命令执行后,再尝试使用其它的地址进行安装
conda install -c "conda-forge/label/cf201901" plotnine
UnicodeDecodeError编码错误
- 产生场景
在Pycharm中执行plotnine的代码时,报Unicode编码错误
- 错误原因
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 8: invalid continuation byte
- 解决办法
# 方法一:通过plotnine对字符编码进行设置
theme(text=element_text(family=['SimHei', 'Arial Unicode MS'])
# 方法二:通过matplotlib对字符编码进行设置
matplotlib.rcParams['axes.unicode_minus']=False # 用来正常显示负号
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plotnine踩坑
plotnine
的下载建议用mamba
,因为conda
和pip
易导致matplotlib
和plotnine
冲突
plotnine语录
—— plotnine开发者的语录一
plotnine一开始是为了改进ggpy中的伸缩功能,它的正式名称是“python的ggplot”。这是一个更大目标的一部分,即把这个包发展成一个支持完整绘图语法的包。事实证明,要想拥有一个图形语法系统,我们必须重新开始。
—— plotnine开发者的语录二
R编程语言有一个丰富的统计生态系统,ggplot2可以轻松地利用它。在plotnine中,我们尽了最大努力与科学python生态系统的其余部分整合在一起。尽管我们觉得我们可以在这个集成上做得更多,但是尽管语言存在差异,熟悉ggplot2的用户应该对使用plotnine感到舒适和高效。
—— Hadely(多产的R包开发者)对Wilkinson图形语法的描述语录
一张统计图形就是从数据到几何对象(geometric object, 缩写为geom, 包括点、线、条形等)的图形属性(aesthetic attributes,缩写为aes, 包括颜色、形状、大小等)的一个映射。此外, 图形中还可能包含数据的统计变换(statistical transformation, 缩写为stats), 最后绘制在某个特定的坐标系(coordinate system, 缩写为coord)中, 而分面(facet, 指将绘图窗口划分为若干个子窗口)则可以用来生成数据中不同子集的图形。
plotnine资源
mamba官网
ggplot2官网
ggplot2入门
ggplot2指南
plotnine官网
Anaconda官网
plotnine官网的示例
图像语法的介绍文档
优快云的plotnine教程一
优快云的plotnine教程二
程序员客栈上的plotnine教程
Python数据可视化之美的示例
字由字体免费下载
word中嵌入好看的代码
word代码生成网站
优快云解决pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool