之前介绍了如何读取csv数据绘制饼状图
这次接着介绍如何读取数据绘制条形图
读取csv中的年龄并绘制成区间图
只是一个很简单的实例,如果需要扩展丰富,只需要往这个模板往上加就是了
csv文件链接:https://pan.baidu.com/s/1aLlGEcZEkMiTf9Pfsh-9WQ
提取码:jr5t
import csv import matplotlib import matplotlib.pyplot as plt import numpy as np import pandas as pd
def age_Dis():#统计年龄分布 pr = pd.read_csv("hydata_swjl_0.csv") pr1 = pd.read_csv("hydata_swjl_1.csv", low_memory=False) print("统计年龄分布:") print() age = [] for i in pr['BIRTHDAY']: age.append(int((20181219 - i) / 10000)) print(age) age1=[] age2=[] age3=[] age4=[] age5=[] for i in age: if 18<=i<25: age1.append(i) elif 25<=i<35: age2.append(i) elif 35<=i<45: age3.append(i) elif 45<=i<55: age4.append(i) else: age5.append(i) index=['18~25','25~35','35~45','45~55','others'] values=[len(age1),len(age2),len(age3),len(age4),len(age5)] plt.bar(index,values) plt.show()
if __name__=="__main__": age_Dis()
展示结果:
注:
问:为什么要用条形图??
答:数据太多(一百万多条),如果用其他图就不能很好的显示出来
比如说,使用折线图:
如图:就完全看不出年龄的分布情况
代码如下:
# 绘制成折线图''' ''' plt.axis([0, 1100000, 0, 75]) plt.xlabel('People Number',color='red') plt.ylabel('Peoples Name',color='red') plt.title('Age Distribution',fontsize=15) plt.plot(age) plt.show() print("折线图效果太差,因采用柱形图") '''
因而,在数据过大的情况下,最好采用条形图
版权声明:本文为badder2原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。