Pandas入门第四章之使用pandas画图操作

在一个数据比赛中,通过画图分析数据的分布,这都是很重要的一部环节,本节主要介绍一下画图函数。内容非常简单,如果想要进一步学习的话,论文或者参加一个比赛都是很不错的学习方式。本节通过三个实例讲述如何画图函数

 

第一个实例: 使用 matplotlib.pyplot 在同一张图上展示不同类型的图像,本段程序应该注意的几个特点

第一:  画图前首先定义一个plt.figure()对象,如果需要在一张图像画不同类型的图像,使用add_subplot添加信息

第二:  add_subplot()函数中,前面两个参数表示你要画多少个子图,第三个参数表示你在哪个子图中进行画图操作,例如(221)表示我要画4个子图,然后我将第一个子图对象赋值给ax1。

第三: 对于子图对象直接调用相关图像接口,即可在该子图上进行画图操作

第四: 本程序中使用了散点图、直方图、(x,y)的关系图、还要cumsum()不知道干啥用的图

Pandas入门第四章之使用pandas画图操作_第1张图片 画图程序的结果

 

import matplotlib.pyplot as plt
import numpy as np

data_x = np.arange(10)
data_y = data_x * data_x
#
fig = plt.figure()

# 定义一些子图的模板
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
ax4 = fig.add_subplot(2, 2, 4)

# 如果不指名对那个模板进行画图操作时,默认会在最后一个子图进行绘图操作
plt.plot(np.random.randn(50).cumsum(), 'k--')

_ = ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.3)

ax2.scatter(np.arange(30), np.arange(30) + 3 * np.random.randn(30))

ax3.plot(data_x, data_y, 'r', marker='o', label='y:double x')
# 增加一些细节信息 例如图像的标题  (X,Y)的标签
plt.show()

 

第二个程序:利用pandas提供的画图接口,分析某列数据值的变化情况。

本程序中实现了两个功能:

第一:使用groupby().size统计每组中元素的个数, 然后打印

第二 : 根据数据集中某一列的数据,画出数据的不同图形 (其中最好的两个形状是直方图和折线图)

 

Pandas入门第四章之使用pandas画图操作_第2张图片 group之后统计每组元素的个数

 

import pandas as pd
import matplotlib.pyplot as plt

data_1 = {'name': ['YYLin', 'YYLin', 'YYLin', 'YYLin_3', 'YYLin_4', 'YYLin_4'],
        'birth_day': ['2000-01-01', '2001-02-02', '2001-03-03', '2001-04-04', '2001-05-05', '2001-05-05'],
        'age': [6, 7, 8, 9, 10, 11]}

data = pd.DataFrame(data_1)
print("原始数据集的值:\n", data)
# 定义一个变量用于控制选择画图的类型 hist  box  area  bar  line
type_plt = 'hist'

if type_plt == 'hist':
    data_group = data.groupby('name').size().reset_index().rename(columns={0: 'num_each_group'})
    print("经过分组之后的数据是:\n", data_group['num_each_group'])
    data_group['num_each_group'].plot.hist()

elif type_plt == 'box':
    data['age'].plot.box()
elif type_plt == 'area':
    data['age'].plot.area()
elif type_plt == 'bar':
    data['age'].plot.bar()
elif type_plt == 'line':
    data['age'].plot()

plt.show()

 

你可能感兴趣的:(Pandas快速入门)