# 2020-11-20 数据科学库(2)matplotlib直方图、散点图、条形图

1411-李同学

## 热门标签

,

### 绘制散点图

from matplotlib import  pyplot as plt
from matplotlib import font_manager

myfont=font_manager.FontProperties(fname="C:/Windows/Fonts/msyh.ttc")

y_3=[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10=[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]

x_3=range(1,32)
x_10=range(51,82)

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

#使用scatter方法绘制散点图，和之前绘制折线图的唯一区别
plt.scatter(x_3,y_3,label="3月份")
plt.scatter(x_10,y_10,label="10月份")

#调整x轴的刻度
_x=list(x_3)+list(x_10)
_xtick_labels=["3月{}日".format(i) for i in x_3]
_xtick_labels+=["10月{}日".format(i-50) for i in x_10]
plt.xticks(_x[::3],_xtick_labels[::3],rotation=45,fontproperties=myfont)

#添加图例
plt.legend(loc="upper left",prop=myfont)

#添加描述信息
plt.xlabel("时间",fontproperties=myfont)
plt.ylabel("温度",fontproperties=myfont)
plt.title("标题",fontproperties=myfont)

plt.show()


### 绘制条形图

from matplotlib import pyplot as p
from matplotlib import font_manager

myfont=font_manager.FontProperties(fname="C:/Windows/Fonts/msyh.ttc")
a=["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5：最后的骑士","摔跤吧！爸爸",
"加勒比海盗5","金刚：骷髅岛","极限特工：终极回归","生化危机6"
,"乘风破浪","神偷奶爸3","智取威虎山","大脑天竺","金刚狼3：殊死一战",
"蜘蛛侠：英雄归来","悟空传","银河护卫队2","情圣","新木乃伊"]
b=[56.01,26.94,17.53,16.19,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,9.75,7.55,7.32,6.99,6.88,6.86
,6.58,6.23]

p.figure(figsize=(20,8),dpi=80)

p.barh(range(len(a)),b,height=0.3,color="cyan")
p.yticks(range(len(a)),a,fontproperties=myfont)

#p.savefig("./movie.png")
p.grid(alpha=0.3)
p.show()


### 绘制多次条形图

from matplotlib import pyplot as p
from matplotlib import font_manager

myfont=font_manager.FontProperties(fname="C:/Windows/Fonts/msyh.ttc")

a=["猩球崛起3：终极之战","敦刻尔克","蜘蛛侠：英雄归来","战狼2"]
b_16=[15746,312,4497,319]
b_15=[12357,156,2045,168]
b_14=[2358,399,2358,362]

p.figure(figsize=(20,8),dpi=80)

bar_width=0.2
x_14=list(range(len(a)))
x_15=[i+bar_width for i in x_14]
x_16=[i+bar_width*2 for i in x_14]

p.bar(range(len(a)),b_14,width=0.2,label="9月14日")
p.bar(x_15,b_15,width=0.2,label="9月15日")
p.bar(x_16,b_16,width=0.2,label="9月16日")

p.legend(prop=myfont)

#设置x轴的刻度
p.xticks(x_15,a,fontproperties=myfont)

p.show()


### 绘制频率直方图

from matplotlib import pyplot as p
from matplotlib import font_manager

myfont=font_manager.FontProperties(fname="C:/Windows/Fonts/msyh.ttc")

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,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=4  #组距
num_bins=(max(a)-min(a))//d

#设置图形大小
p.figure(figsize=(20,8),dpi=80)

p.hist(a,num_bins,density=True)

#设置x轴刻度
p.xticks(range(min(a),max(a)+d,d))
p.grid()

p.show()


hist绘制没有统计过的数据

### 绘制已经统计好的数据

from matplotlib import pyplot as p
from matplotlib import font_manager

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]

p.figure(figsize=(20,8),dpi=80)

p.bar(range(len(quantity)),quantity,width=1)

#设置x轴的刻度
_x=[i-0.5 for i in range(13)]
_xtick_labels=interval+[150]
p.xticks(_x,_xtick_labels)
p.grid()

p.show()


Vieu3.3主题

Q Q 登 录