前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >传说中的画图神器Plotnine,Python中的ggplot2

传说中的画图神器Plotnine,Python中的ggplot2

作者头像
HuangWeiAI
发布于 2020-07-27 07:16:38
发布于 2020-07-27 07:16:38
2.1K00
代码可运行
举报
文章被收录于专栏:浊酒清味浊酒清味
运行总次数:0
代码可运行

01

前言

Python的绘图库(如matplotlib和seaborn)也允许用户创建优雅的图形,但是与R中的ggplot2的简单、可读和层次方法相比,它缺乏实现图形语法的标准化语法,这使得用Python实现它更加困难。。

02

Plotnine

R的忠实用户知道,ggplot2可以使您在处理探索性数据分析数据可视化时更加简单。它使得创建优雅而强大的情节变得如此容易,从而有助于解读数据中的潜在关系。

那么Python用户是否也有类似的画图工具呢?

这个问题的答案在Plotnine中。

Plotnine的风格与R中的ggplot2有99%的相似之处,主要区别在于括号的使用,您将在下面的几个简短示例中看到。使用plotnine的一个最好的收获是,输出基本上与在R中得到的相同。在视觉上没有显著的区别。

接下来我们简要介绍如何使用Plotnine。

安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pandas plotnine

让我们用必要的库来设置工作环境,并将csv文件加载到名为survs_df的数据框架中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import pandas as pd
from plotnine import *

%matplotlib inline
survs_df = pd.read_csv('surveys.csv').dropna()

要使用plotnine中的ggplot类生成一个图形,我们必须提供三件事:

  • 包含我们的数据的数据框。
  • 如何将数据框架的列转换为图形元素的位置、颜色、大小和形状(“美学”)。
  • 要显示的实际图形元素(“几何对象”)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(survs_df, aes(x='weight', y='hindfoot_length')) + geom_point()

对于plotnine中的API,我们可以使用许多选项来创建图形。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(
ggplot(mtcars, aes(‘wt’, ‘mpg’, color=’factor(cyl)))
+ geom_point()
+ labs(title=’Miles per gallon vs Weight’, x=’Weight’, y=’Miles per gallon’)
+ guides(color=guide_legend(title=’Number of Cylinders’)) )

R中的ggplot的主要卖点之一是FACET的能力。对于用一行代码绘制数据子集,我们也有许多选项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(ggplot(mtcars, aes(‘wt’, ‘mpg’, color=’factor(cyl)))
+ geom_point()
+ labs(title=’Miles per gallon vs Weight’,x=’Weight’, y=’Miles per gallon’)
+ guides(color=guide_legend(title=’Cylinders’))
+ facet_wrap(~gear’)
)

只需在前面代码的末尾添加facet_wrap(' ~gear '),我们现在就有了一个分面情节。这实际上比使用Matplotlib和Seaborn要简单得多。

参考文章:

https://www.kdnuggets.com/2019/12/python-alternative-ggplot2.html

https://monashdatafluency.github.io/python-workshop-base/modules/plotting_with_ggplot/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python学会 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
「R」ggplot2数据可视化
R有几种不同的系统用来产生图形,但ggplot2是最优雅而多变的那一种。ggplot2实现了图形语法,一种描述和构建图形的逻辑系统。通过ggplo2,我们能够快速学习,多处应用。
王诗翔呀
2020/07/03
8.4K0
高阶可视化绘图系统:ggplot2入门
ggplot2是《The Grammar of Graphics》/《图形的语法》中提出了一套图形语法,将图形元素抽象成可以自由组合的要素,类似Photoshop中的图层累加,ggplot2将指定的元素/映射关系逐层叠加,最终形成所图形。更加深入学习ggplot2,请参考《ggplot2: 数据分析与图形艺术》。
1480
2019/07/22
1.8K0
高阶可视化绘图系统:ggplot2入门
R绘图 | 快速入门ggplot2
本次演示我们以R自带的数据集diamonds为例进行绘图,由于数据量比较大我们使用tidyverse随机抽取1000条数据进行演示。
生信real
2022/12/20
1.6K0
R绘图 | 快速入门ggplot2
ggplot2绘图
ggplot2 包提供了一个基于全面而连贯的语法的绘图系统。它弥补了 R 中创建图形缺乏一致性的缺点,使得用户可以创建有创新性的、新颖的图形类型。ggplot2 是 R 语言绘图一个重要特性和优势。通过 ggplot2,只需少量的代码,就可以绘制出高质量的图形,满足出版需要。ggplot2 语法简介,逻辑清晰,功能强大,可以快速上手。在 R 语言中自成一派,目前也有越来越多的绘图包基于 ggplot2 进行二次开发,一般都是以“gg”开头,例如 ggpubr,ggtree,ggvis,ggtree,ggstatsplot 等。
生信喵实验柴
2022/10/25
8320
学习python画图模块plotnine:第一步安装
https://plotnine.readthedocs.io/en/stable/index.html
用户7010445
2020/09/03
2.1K0
学习python画图模块plotnine:第一步安装
如何在Python里用ggplot2绘图
为了严格实现图形语法,ggplot2提供了一种非常直观和一致的方式来绘制数据。ggplot2的绘图方法不仅确保每个绘图包含特定的基本元素,而且在很大程度上简化了代码的可读性。
AiTechYun
2019/06/15
3.8K0
ggplot2 |legend参数设置,图形精雕细琢
使用guides()参数来设置或移除特定的美学映射(fill, color, size, shape等).
生信补给站
2020/08/06
2.3K0
怎样绘出高级感的图形?ggdark
小伙伴们有没有发现,一些展示图更换背景后会看起来比较有质感呢~今天介绍一个可以更换图片背景的R包——ggdark
作图丫
2022/03/28
4080
怎样绘出高级感的图形?ggdark
R:ggtext包丰富ggplot2中文本的表现力
ggtext让ggplot2图像也可以使用html、markdown及css语法,丰富了ggplot2文本的表现力。
生信菜鸟团
2020/12/03
1.8K0
R:ggtext包丰富ggplot2中文本的表现力
R语言可视化及作图7--ggplot2之标签、图例和标题绘制
geom_label可以使用fill对颜色进行填充,fontface设置字体,geom_text不能填充颜色
前端小tips
2021/12/08
5.9K0
R语言可视化及作图7--ggplot2之标签、图例和标题绘制
ggplot2 图形排版:patchwork 包复杂排版
前面我们学习了 patchwork 包排版 ggplot2 图形的简单入门,今天来学习下 patchwork 包的复杂排版。
章鱼猫先生
2021/10/15
6.4K0
ggplot2 图形排版:patchwork 包复杂排版
技术贴:R语言拼图全面介绍
说起R语言的拼图,可能大家一点都不陌生,比如常用的“cowplot”和“patchwork”。gridExtra包也提供了一个拼图函数”grid.arrange“。另外,南方医科大学余光创教授也开发了一个更为神奇的拼图R包:aplot。本文将依次对它们的用法进行介绍。
作图丫
2022/03/29
6K0
技术贴:R语言拼图全面介绍
使用patchwork进行拼图的一些细节
说到拼图,那必须得好好学习patchwork包,这个包是Thomas大佬的作品,一经推出就火了,迅速取代了R中其他的拼图包。
医学和生信笔记
2022/11/15
5.4K0
使用patchwork进行拼图的一些细节
ggplot2 图形排版:patchwork 包简单入门
在前面我们学习了基础绘图系统和 ggplot2 绘图系统的图形排版组合,具体可见下面推文。
章鱼猫先生
2021/10/15
1.1K0
ggplot2 图形排版:patchwork 包简单入门
(数据科学学习手札38)ggplot2基本图形简述
  上一篇中我们介绍了ggplot2的基本语法规则,为了生成各种复杂的叠加图层,需要了解ggplot2中一些基本的几何图形的构造规则,本文便就常见的基础几何图形进行说明;
Feffery
2018/05/30
5.5K10
ggplot2|详解八大基本绘图要素
ggplot2是由Hadley Wickham创建的一个十分强大的可视化R包。按照ggplot2的绘图理念,Plot(图)= data(数据集)+ Aesthetics(美学映射)+ Geometry(几何对象)。本文将从ggplot2的八大基本要素逐步介绍这个强大的R可视化包。
生信补给站
2020/08/05
7.4K0
ggplot2|详解八大基本绘图要素
ggplot2画图:legend整理(title/position/order...)
修改位置有两种方式,一种是直接给出四种位置中的一个:“left”,“top”, “right”, “bottom”, “none”。
生信编程日常
2020/04/01
1.5K0
ggplot2画图:legend整理(title/position/order...)
30分钟学会ggplot2-散点图
标度负责控制映射后图形属性的显示方式。具体形式上来看是图例和坐标刻度。Scale和Mapping是紧密相关的概念。
黑妹的小屋
2020/08/06
9920
R in action读书笔记(21)第十六章 高级图形进阶(上) 17P 建议wifi下阅读
基础图形函数可自动调用,而grid和lattice函数的调用必须要加载相应的包(如library(lattice))。要调用ggplot2函数需下载并安装该包(install.packages("ggplot2")),第一次使用前还要进行加载(library(ggplot2))。
Ai学习的老章
2019/04/10
5310
R in action读书笔记(21)第十六章  高级图形进阶(上) 17P 建议wifi下阅读
ggplot2分面图形大改造
ggplot2的默认分面功能功能不够强大,支持的自定义参数也比较少,今天介绍的这个包可以对分面进行超多改头换面的操作!
医学和生信笔记
2022/11/15
1.1K0
ggplot2分面图形大改造
相关推荐
「R」ggplot2数据可视化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验