Matplotlib学习
一、导入matplotlib
from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
plt.plot(x,y)
plt.show()
二、调整x轴刻度
设置图片大小
fig = plt.figure(figsize = (20,8),dpi = 80)
figure图形图标,指当前绘制的图
figsize 图片大小,一个元组,(20,8)指宽20,高8
dpi 每英寸上点的个数,在图片模糊时可以传入dpi,让图像更清晰
设置x轴刻度
plt.xticks(x)
plt.yticks(range(min(y),max(y)+1))
#plt.xticks(range(2,25))
#plt.xticks(x)
plt设置中文
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug
_x = x
_xtick_labels = ["学{}".format(i) for i in _x]
plt.xticks(_x,_xtick_labels,rotation=45) #rotation顺时针旋转的度数
添加描述信息
plt.xlabel("名称");
plt.ylabel("温度");
plt.title("温度变化图");
保存方法
plt.savefig("./g_.png")
三、绘制散点图
from matplotlib import pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug
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=(15,6),dpi=60)
#使用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)
#添加图例
plt.legend(loc="upper left")
#添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("标题")
#展示
plt.show()
四、绘制条形图
from matplotlib import pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug
a=["战狼2","速度与激情8","功夫瑜伽","西游伏魔篇","变形金刚5:\n最后的骑士",
"摔跤吧!爸爸","加勒比海盗5:\n死无对证","金刚:\n骷髅岛","极限特工:\n终极回归",
"生化危机6:\n终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:\n殊死一战",
"蜘蛛侠:\n英雄归来","悟空传","银河护卫队2","情圣","新木乃伊"]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
#设置图形大小
plt.figure(figsize=(15,6),dpi=70)
#绘制条形图
plt.bar(range(len(a)),b,width=0.3)
#设置字符串到x轴
plt.xticks(range(len(a)),a,rotation=90)
plt.show()
from matplotlib import pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug
a=["战狼2","速度与激情8","功夫瑜伽","西游伏魔篇","变形金刚5:最后的骑士",
"摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归",
"生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战",
"蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊"]
b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
#设置图形大小
plt.figure(figsize=(15,6),dpi=70)
#绘制条形图
plt.barh(range(len(a)),b,height=0.3)
#设置字符串到y轴
plt.yticks(range(len(a)),a)
plt.grid(alpha=0.3)
plt.show()
绘制多次条形图
from matplotlib import pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug
a=["猩球崛起2:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]
bar_width = 0.2
x_14 = list(range(len(a)))
x_15 = [i+0.2 for i in x_14]
x_16 = [i+0.2*2 for i in x_14]
#设置图形大小
plt.figure(figsize=(15,6),dpi=60)
plt.bar(range(len(a)),b_14,width=bar_width,label="9月14日")
plt.bar(x_15,b_15,width=bar_width,label="9月15日")
plt.bar(x_16,b_16,width=bar_width,label="9月16日")
#设置图例
plt.legend()
#设置x轴刻度
plt.xticks(x_15,a)
plt.show()
五、绘制直方图
plt.hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)
-
x:指定要绘制直方图的数据。
-
bins:指定直方图条形的个数。
-
range:指定直方图数据的上下界,默认包含绘图数据的最大值和最小值。
-
normed:是否将直方图的频数转换成频率。
-
weights:该参数可为每一个数据点设置权重。
-
cumulative:是否需要计算累计频数或频率。
-
bottom:可以为直方图的每个条形添加基准线,默认为0。
-
histtype:指定直方图的类型,默认为bar,除此之外,还有barstacked、step和stepfilled
-
align:设置条形边界值的对齐方式,默认为mid,另外还有left和right
-
orientation:设置直方图的摆放方向,默认为垂直方向
-
rwidth:设置直方图条形的宽度
-
log:是否需要对绘图数据进行log变换
-
color:设置直方图的填充色
-
edgecolor:设置直方图边框色
-
label:设置直方图的标签,可通过legend展示其图例
有barstacked、step和stepfilled
-
align:设置条形边界值的对齐方式,默认为mid,另外还有left和right
-
orientation:设置直方图的摆放方向,默认为垂直方向
-
rwidth:设置直方图条形的宽度
-
log:是否需要对绘图数据进行log变换
-
color:设置直方图的填充色
-
edgecolor:设置直方图边框色
-
label:设置直方图的标签,可通过legend展示其图例
-
stacked:当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放