数据可视化 | Pandas vs Plotnine
时间:2022-07-26
本文章向大家介绍数据可视化 | Pandas vs Plotnine,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
来源:大邓和他的Python
使用Pandas和plotnine可视化数据
目标:
- 学会使用pandas内置的作图功能
- 使用pands作散点图和直方图?
- 使用plotnine定制一个画布
- 从dataframe数据中构建复杂的定制化图表
- 导出作图结果
之前分享过很多pandas可视化、plotnine可视化,
但是两者对比的还没有,今天我们尝试分别用pandas和plotnine作直方图、散点图。
导入数据
%matplotlib inline
import pandas as pd
import warnings
warnings.filterwarnings('ignore')
ecoli = pd.read_csv('ecoli.csv')
ecoli.head()
直方图
pandas直方图
ecoli['genome_size'].plot.hist()
#带标题
ecoli['genome_size'].plot.hist(title='Histogram with pandas')
plotnine直方图
from plotnine import ggplot, aes, geom_histogram
(ggplot(data=ecoli, #dataframe数据
mapping=aes(x='genome_size')) #需要统计的x轴
+ geom_histogram(bins=15) #直方图分为15个区间
)
from plotnine import ggplot, aes, geom_histogram, labs
(ggplot(data=ecoli,
mapping=aes(x='genome_size'))
+ geom_histogram(bins=15)
+ labs(title='Histogram with Plotnine')
)
散点图
pandas散点图
ecoli.plot.scatter(x='generation',y='genome_size')
#带标题、点的颜色、点的形状marker
ecoli.plot.scatter(x='generation',y='genome_size',
title='Scater plot with pandas', c='green', marker='+')
plotnine散点图
from plotnine import ggplot, aes, geom_point, labs
(ggplot(data=ecoli,
mapping=aes(x = 'sample', y= 'genome_size'))
+ geom_point(alpha=0.5, color='blue') #散点图
+ labs(title='scatter plot with plotnine')
)
from plotnine import ggplot, aes, geom_point, labs, theme, element_text
(ggplot(data=ecoli,
mapping=aes(x = 'sample', y= 'genome_size'))
+ geom_point(alpha=0.5, color='blue') #透明度alpha
+ labs(title='scatter plot with plotnine')
+ theme(axis_text_x=element_text(angle=45, hjust=1)) #设置x轴的文本角度和水平居中程度
)
from plotnine import ggplot, aes, geom_point, labs, theme, element_text
#除x、y轴,增加一个颜色维度
(ggplot(data=ecoli,
mapping=aes(x = 'sample', y= 'genome_size', color='generation'))
+ geom_point(alpha=0.5)
+ labs(title='scatter plot with plotnine')
+ theme(axis_text_x = element_text(angle=45, hjust=1))
)
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(12)-系统日志和异常的处理②
- Enterprise Library Policy Injection Application Block 之二: PIAB设计和实现原理
- 育碧与研究所共同开发的AI,是什么样的?
- 大家都在关注AI,但这些事你可能并不知道!
- AI—未来医疗
- 微信小程序新功能上线 一键连Wi-Fi手机变门禁卡
- 使用xUnit为.net core程序进行单元测试(中)
- Asp.Net 用Jquery和一般处理程序实现无刷新上传大文件
- WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用
- WCF技术剖析之十四:泛型数据契约和集合数据契约(上篇)
- WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇)
- WCF技术剖析(卷1)之前言
- WCF技术剖析(卷1)之目录
- WCF技术剖析(卷1)之推荐序
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【python实现卷积神经网络】开始训练
- django实战(五)--增加数据
- 实战django(一)--(你也能看懂的)注册与登录(带前端模板)
- 【python-leetcode23-多路归并】合并k个排序链表
- 实战django(二)--登录实现记住我
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.gong.mybatis.da
- 【python-leetcode378-二分查找】有序矩阵中的第k小元素
- 使用cookie来记录用户登录次数,为何次数不更新
- (二)golang--windows下vscode的安装以及go环境的配置
- mybatis文件映射之使用#取值时的一些规则
- 【论文笔记】Improved Residual Networks for Image and Video Recognition(ResNet新变体:IResNet)
- SQL语句在MYSQL中的运行过程和各个组件的介绍
- (五)golang--常用的一些玩意
- 关于MYSQL 的日志系统
- (六)golang--变量