from matplotlib import pyplot as plt
from matplotlib import font_manager
if __name__ =="__main__":
a=[131,98,125,131,124,139,131,117,128,108,135,138,131,102,107,114,119,128,121,142,127,130,124,101,110,116,117,110,128,128,115,99,136,126,134,95,138,117,111,78,132,124,113,150,110,117,86,95,144,105,126,130,126,130,126,116,123,106,112,138,123,86,101,99,136,123,117,119,105,137,123,128,125,104,109,134,125,127,105,120,107,129,116,108,132,103,136,118,102,120,114,105,115,132,145,119,121,112,139,125,138,109,132,134,156,106,117,127,144,139,139,119,140,83,110,102,123,107,143,115,136,118,139,123,112,118,125,109,119,133,112,114,122,109,106,123,116,131,127,115,118,112,135,115,146,137,116,103,144,83,123,111,110,111,100,154,136,100,118,119,133,134,106,129,126,110,111,109,141,120,117,106,149,122,122,110,118,127,121,114,125,126,114,140,103,130,141,117,106,114,121,114,133,137,92,121,112,146,97,137,105,98,117,112,81,97,139,113,134,106,144,110,137,137,111,104,117,100,111,101,110,105,129,137,112,120,113,133,112,83,94,146,133,101,131,116,111,84,137,115,122,106,144,109,123,116,111,111,133,150]
d =3#组距#结果最好是整数,不是整数的话图形会相对x轴坐标刻度偏移#max(a)-min(a),数组a中最大的值减去最小的值
num_bins =(max(a)-min(a))//d
#设置图形的大小
plt.figure(figsize=(20,8),dpi=80)#a参数是指定每个bin(箱子)分布的数据,对应x轴,num_bins参数指定bin(箱子)的个数,也就是总共有几条条状图# density=True参数指定密度,也就是每个条状图的占比例比,默认为1
plt.hist(a,num_bins,density=True)#设置x轴的刻度
plt.xticks(range(min(a),max(a)+d,d))#设置网格
plt.grid()
plt.show()
这个是将已经统计完的数据绘制成直方图
程序代码
from matplotlib import pyplot as plt
from matplotlib import font_manager
if __name__ =="__main__":#interval是横坐标,width是横坐标的间距,quantity是每个间距里面的数据的个数
interval =[0,5,10,15,20,25,30,35,40,45,60,90]
width =[5,5,5,5,5,5,5,5,5,15,30,60]
quantity =[836,2737,3723,3926,3596,1438,3273,642,824,613,215,47]#设置图片大小和像素
plt.figure(figsize=(20,8),dpi=80)#bar(left, height, width, color, align, yerr)函数:绘制柱形图。#left为x轴的位置序列,一般采用arange函数产生一个序列;#height为y轴的数值序列,也就是柱形图的高度,一般就是我们需要展示的数据;#width为柱形图的宽度,一般这是为1即可;color为柱形图填充的颜色;#align设置plt.xticks()函数中的标签的位置;yerr让柱形图的顶端空出一部分。
plt.bar(interval,quantity,width=width,align="edge")#x轴的刻度缺失一个,用上个刻度的值加上间隔补上最后的刻度
xtick1 = interval+[150]
plt.xticks(xtick1)
plt.show()