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 相关文章推荐
使用IPython下的Net-SNMP来管理类UNIX系统的教程
Apr 15 Python
Python Matplotlib库入门指南
May 18 Python
Python中set与frozenset方法和区别详解
May 23 Python
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
对Python 数组的切片操作详解
Jul 02 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
Django框架教程之中间件MiddleWare浅析
Dec 29 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
Python模拟登录requests.Session应用详解
Nov 17 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开发大型项目的一点经验
2006/10/09 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
jQuery操作css样式
2017/05/15 jQuery
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
利用Python演示数型数据结构的教程
2015/04/03 Python
python生成验证码图片代码分享
2016/01/28 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
Python中asyncio与aiohttp入门教程
2018/10/16 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
Python shutil模块用法实例分析
2019/10/02 Python
彪马英国官网:PUMA英国
2019/02/11 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
物流管理毕业生自荐信
2013/10/24 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
庆国庆活动总结
2014/08/28 职场文书
挂职学习心得体会
2014/09/09 职场文书
师德师风自我评价范文
2014/09/11 职场文书
入党转正介绍人意见
2015/06/03 职场文书
工作简历的自我评价
2019/05/16 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android
SQL SERVER中的流程控制语句
2022/05/25 SQL Server