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学习笔记_数据排序方法
May 22 Python
python根据给定文件返回文件名和扩展名的方法
Mar 27 Python
21行Python代码实现拼写检查器
Jan 25 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
python实现简单的tcp 文件下载
Sep 16 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 Python
使用Pytorch搭建模型的步骤
Nov 16 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 06 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中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
ajax 文件上传应用简单实现
2009/03/03 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
基于python实现把图片转换成素描
2019/11/13 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
医学专业毕业生个人的求职信
2013/12/04 职场文书
网上卖盒饭创业计划书范文
2014/02/07 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
初中作文评语
2014/12/25 职场文书
教师学期个人总结
2015/02/11 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
Java 多线程协作作业之信号同步
2022/05/11 Java/Android
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android