pandas数据处理之绘图的实现

作者:Python实用宝典 时间:2022-11-14 06:22:39 

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数据处理之绘图的实现

来源:https://blog.csdn.net/u010751000/article/details/106735872

标签:pandas,绘图
0
投稿

猜你喜欢

  • Python的Django框架中的URL配置与松耦合

    2022-11-19 10:23:33
  • Python 变量类型及命名规则介绍

    2022-09-17 20:21:22
  • javascript使用正则表达式检测IP地址

    2024-03-15 11:06:52
  • python创建学生成绩管理系统

    2023-08-09 04:19:38
  • Python OpenCV对图像进行模糊处理详解流程

    2022-05-16 03:54:19
  • python爬虫之爬取百度翻译

    2022-04-03 19:30:45
  • Flask接口签名sign原理与实例代码浅析

    2023-06-21 23:18:13
  • JS+DIV实现拖动效果

    2023-07-02 05:19:37
  • php计算给定日期所在周的开始日期和结束日期示例

    2023-10-11 12:49:12
  • 在pycharm创建scrapy项目的实现步骤

    2022-06-02 02:56:56
  • 谈切图优化加速图片显示—淘宝实例

    2008-01-30 12:24:00
  • python web.py启动https端口的方式

    2021-10-20 11:33:44
  • Python的类成员变量默认初始值的坑及解决

    2023-12-02 18:46:47
  • 利用Python改正excel表格数据

    2022-02-13 16:12:40
  • 基于Python实现火车票抢票软件

    2021-08-28 18:31:08
  • Golang之defer 延迟调用操作

    2023-08-04 18:21:48
  • 纯JavaScript实现的分页插件实例

    2024-06-09 12:08:26
  • Python中Selenium模块的使用详解

    2022-03-31 05:53:47
  • IDEA连接MySQL数据库并执行SQL语句使用数据图文详解

    2024-01-14 13:57:09
  • python编程实现希尔排序

    2022-11-05 22:21:57
  • asp之家 网络编程 m.aspxhome.com