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 相关文章推荐
wxPython框架类和面板类的使用实例
Sep 28 Python
Python中类型关系和继承关系实例详解
May 25 Python
Python中实现最小二乘法思路及实现代码
Jan 04 Python
python矩阵转换为一维数组的实例
Jun 05 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
python numpy 按行归一化的实例
Jan 21 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
python numpy 反转 reverse示例
Dec 04 Python
使用Python实现分别输出每个数组
Dec 06 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
PyTorch的torch.cat用法
Jun 28 Python
python tkinter模块的简单使用
Apr 07 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
详谈nodejs异步编程
2014/12/04 NodeJs
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
2019/09/10 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
python爬虫基本知识
2018/03/05 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
城市轨道专业个人求职信范文
2013/09/23 职场文书
军人违纪检讨书
2014/02/04 职场文书
离婚财产处理协议书
2014/09/30 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
安全教育培训心得体会
2016/01/15 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android