本文共 1178 字,大约阅读时间需要 3 分钟。
之前介绍了如何读取csv数据绘制饼状图
这次接着介绍如何读取数据绘制条形图
读取csv中的年龄并绘制成区间图
只是一个很简单的实例,如果需要扩展丰富,只需要往这个模板往上加就是了
csv文件链接:https://pan.baidu.com/s/1aLlGEcZEkMiTf9Pfsh-9WQ 提取码:jr5timport 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("折线图效果太差,因采用柱形图") ''' 因而,在数据过大的情况下,最好采用条形图转载地址:http://eduii.baihongyu.com/