pandas数据处理之绘图的实现


Posted in Python onJune 15, 2020

Pandas是Python中非常常用的数据处理工具,使用起来非常方便。它建立在NumPy数组结构之上,所以它的很多操作通过NumPy或者Pandas自带的扩展模块编写,这些模块用Cython编写并编译到C,并且在C上执行,因此也保证了处理速度。

今天我们就来体验一下它的强大之处。

1.创建数据

使用pandas可以很方便地进行数据创建,现在让我们创建一个5列1000行的pandas DataFrame:

mu1, sigma1 = 0, 0.1
mu2, sigma2 = 0.2, 0.2
n = 1000df = pd.DataFrame(
  {
    "a1": pd.np.random.normal(mu1, sigma1, n),
    "a2": pd.np.random.normal(mu2, sigma2, n),
    "a3": pd.np.random.randint(0, 5, n),
    "y1": pd.np.logspace(0, 1, num=n),
    "y2": pd.np.random.randint(0, 2, n),
  }
)
  • a1和a2:从正态(高斯)分布中抽取的随机样本。
  • a3:0到4中的随机整数。
  • y1:从0到1的对数刻度均匀分布。
  • y2:0到1中的随机整数。

生成如下所示的数据:

pandas数据处理之绘图的实现

2.绘制图像

Pandas 绘图函数返回一个matplotlib的坐标轴(Axes),所以我们可以在上面自定义绘制我们所需要的内容。比如说画一条垂线和平行线。这将非常有利于我们:

1.绘制平均线

2.标记重点的点

import matplotlib.pyplot as plt
ax = df.y1.plot()
ax.axhline(6, color="red", linestyle="--")
ax.axvline(775, color="red", linestyle="--")
plt.show()

pandas数据处理之绘图的实现

我们还可以自定义一张图上显示多少个表:

fig, ax = plt.subplots(2, 2, figsize=(14,7))
df.plot(x="index", y="y1", ax=ax[0, 0])
df.plot.scatter(x="index", y="y2", ax=ax[0, 1])
df.plot.scatter(x="index", y="a3", ax=ax[1, 0])
df.plot(x="index", y="a1", ax=ax[1, 1])
plt.show()

pandas数据处理之绘图的实现

3.绘制直方图

Pandas能够让我们用非常简单的方式获得两个图形的形状对比:

df[["a1", "a2"]].plot(bins=30, kind="hist")
plt.show()

pandas数据处理之绘图的实现

还能允许多图绘制:

df[["a1", "a2"]].plot(bins=30, kind="hist", subplots=True)
plt.show()

pandas数据处理之绘图的实现

当然,生成折线图也不在画下:

df[['a1', 'a2']].plot(by=df.y2, subplots=True)
plt.show()

pandas数据处理之绘图的实现

4.线性拟合

Pandas还能用于拟合,让我们用pandas找出一条与下图最接近的直线:

pandas数据处理之绘图的实现

最小二乘法计算和该直线最短距离:

df['ones'] = pd.np.ones(len(df))
m, c = pd.np.linalg.lstsq(df[['index', 'ones']], df['y1'], rcond=None)[0]

根据最小二乘的结果绘制y和拟合出来的直线:

df['y'] = df['index'].apply(lambda x: x * m + c)
df[['y', 'y1']].plot()
plt.show()

pandas数据处理之绘图的实现

到此这篇关于pandas数据处理之绘图的实现的文章就介绍到这了,更多相关pandas 绘图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
压缩包密码破解示例分享(类似典破解)
Jan 17 Python
python实现的文件夹清理程序分享
Nov 22 Python
Python 2.7.x 和 3.x 版本的重要区别小结
Nov 28 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
Apr 07 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
python 在某.py文件中调用其他.py内的函数的方法
Jun 25 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
python全局变量引用与修改过程解析
Jan 07 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
keras中的loss、optimizer、metrics用法
Jun 15 #Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 #Python
基于python和flask实现http接口过程解析
Jun 15 #Python
基于nexus3配置Python仓库过程详解
Jun 15 #Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 #Python
在keras里面实现计算f1-score的代码
Jun 15 #Python
Python流程控制语句的深入讲解
Jun 15 #Python
You might like
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
Python splitlines使用技巧
2008/09/06 Python
Python Socket编程入门教程
2014/07/11 Python
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
python 装饰器的基本使用
2021/01/13 Python
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
初一地理教学反思
2014/01/16 职场文书
工地安全检查制度
2014/02/04 职场文书
高中军训感言600字
2014/03/11 职场文书
旅游安全协议书
2014/04/21 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
k8s部署redis cluster集群的实现
2021/06/24 Redis
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android