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 相关文章推荐
python操作redis的方法
Jul 07 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
如何利用python查找电脑文件
Apr 27 Python
python实现简单多人聊天室
Dec 11 Python
python opencv摄像头的简单应用
Jun 06 Python
安装docker-compose的两种最简方法
Jul 30 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
Tensorflow限制CPU个数实例
Feb 06 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
基于python实现模拟数据结构模型
Jun 12 Python
Pytest如何使用skip跳过执行测试
Aug 13 Python
Python超详细分步解析随机漫步
Mar 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
海贼王:最美的悬赏令!
2020/03/02 日漫
php 强制下载文件实现代码
2013/10/28 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
js判断url是否有效的两种方法
2014/03/04 Javascript
js函数调用的方式
2014/05/06 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
jQuery.Form上传文件操作
2017/02/05 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
详解python eval函数的妙用
2017/11/16 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
python字符串的拼接方法总结
2019/11/18 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
容易被忽略的Python内置类型
2020/09/03 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
主持人婚宴答谢词
2014/01/28 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
愚人节活动策划方案
2014/03/11 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
七年级作文之游记
2019/12/11 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers