直方图就是将数据值所在范围分成若干个区间,在图上画出每个区间上数据的个数。数据分布直方图画法参详Tiger:人人都能用数据-统计学和直方图。
在绘制直方图时,组数确定很重要。如果组数太少,会丢失部分数据信息,抹杀数据间的差异性,如果组数太多,会影响数据分组规律的明显性,不易观察规律。
使用pandas、matplotlib 绘制直方图
绘制体重分布直方图
数据集格式:
weight
0 48
1 44
2 48
3 52
4 58
数据集汇总信息:
count 80.000000
mean 50.700000
std 6.267053
min 38.000000
25% 47.000000
50% 50.000000
75% 54.000000
max 69.000000
Name: weight, dtype: float64
绘制直方图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
weight_file_path = "C:/Users/ajv/Desktop/DA/weight.txt"
df_weight = pd.read_csv(weight_file_path)
print df_weight.head()
print df_weight['weight'].describe()
weight_mean = df_weight['weight'].mean()
weight_variance = df_weight['weight'].var()
fig = plt.figure() # 创建画布
ax = fig.add_subplot(111) # 创建子图。 画布分割成1行1列,从左到右从上到下第1幅
ax.hist(df_weight['weight'], bins=10, color='blue', alpha=0.8) # bins控制柱子宽窄疏密,appha
plt.text(60, 10, u'均值: %s\n方差: %s' % (weight_mean, weight_variance), fontproperties='SimHei')
plt.xlabel(u"体重/kg", fontproperties='SimHei')
plt.ylabel(u"频数", fontproperties='SimHei')
plt.title(u'体重的直方图', fontproperties='SimHei') # 设置标题,正常显示中文
plt.savefig('C:/Users/ajv/Desktop/DA/weight.png')
weight.png
数据集特征
体重数据集共有80个记录,分布在44-50kg的人数 最多,平均体重为50.7k,标准差为6.27,波动较小。
绘制航空公司客户分布直方图
数据集格式:
Month NumPassengers
0 Jan-49 112
1 Feb-49 118
2 Mar-49 132
3 Apr-49 129
4 May-49 121
数据集汇总信息:
count 144.000000
mean 280.298611
std 119.966317
min 104.000000
25% 180.000000
50% 265.500000
75% 360.500000
max 622.000000
绘制直方图
AirPassengers_file_path = "C:/Users/ajv/Desktop/DA/AirPassengers.csv"
df_air_passengers = pd.read_csv(AirPassengers_file_path)
print df_air_passengers.head()
print df_air_passengers['NumPassengers'].describe()
air_passengers_mean = df_air_passengers['NumPassengers'].mean()
air_passengers_variance = df_air_passengers['NumPassengers'].var()
fig = plt.figure() # 创建画布
ax = fig.add_subplot(111) # 创建子图。 画布分割成1行1列,从左到右从上到下第1幅
ax.hist(df_air_passengers['NumPassengers'], bins=24, color='green', alpha=0.6) # bins控制分组,appha设置参数点的透明度
plt.text(500, 10, u'均值: %s\n方差: %s' % (air_passengers_mean, air_passengers_variance), fontproperties='SimHei')
plt.xlabel(u"乘客数", fontproperties='SimHei')
plt.ylabel(u"频数", fontproperties='SimHei')
plt.title(u'某航空公司客户的直方图', fontproperties='SimHei') # 设置标题,正常显示中文
plt.savefig('C:/Users/ajv/Desktop/DA/air_passengers.png')
plt.show()
air_passengers.png
数据集特征
航空公司乘客数据集共有144个记录,每月平均乘客数为144,标准差为119.97,每月乘客数波动性较大。
网友评论