折线图
效果
模板代码
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体
##折线图
x = range(2,26,2)
y = [15,13,14.5,17,20,25,26,26,24,22,18,15]
y2 = [i-1 for i in y]
#设置图片大小、清晰程度
fig = plt.figure(figsize=(20,8),dpi=80)
#绘图
plt.plot(x,y,label="y1")
plt.plot(x,y2,label="y2")
plt.legend()
#绘制x、y轴刻度
_xtick_labels = [i/2 for i in range(4,49)]
plt.xticks(_xtick_labels)
plt.yticks(range(min(y),max(y)+1))
#调整x、y轴刻度
_x = x
_xticks_labels = ["杨{}".format(i) for i in _x]
plt.xticks(_x,_xticks_labels,rotation=-90)#rotation,旋转
#添加描述信息
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
#绘制网格
plt.grid(alpha=0.4)#透明度,
#保存(可以保存svg格式)
plt.savefig("./temp.png")
plt.show()
散点图
效果
模板代码
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体
##散点图
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)
#画图
plt.scatter(x_3,y_3,label="3月份")
plt.scatter(x_10,y_10,label="10月份")
plt.legend(loc="upper left")
#调整x/y轴坐标
_x = list(x_3)+list(x_10)
_xtick_labels = ["3月{}日".format(i) for i in x_3]
_xtick_labels += ["10月{}日".format(i) for i in x_3]
plt.xticks(_x[::3],_xtick_labels[::3],rotation=45)
#添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("标题")
plt.show()
条形图
效果
模板代码
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体
##条形图
x = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士",
"摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷颅岛","极限特工:终极回归","生化危机6:终章"]
y = [56.01,26.94,17.53,16.49,15.45,
12.96,11.8,11.61,11.28,11.12]
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(x)),y,width=0.5)
plt.xticks(range(len(x)),x,rotation=45)
plt.xlabel("电影名")
plt.ylabel("票房")
plt.title("标题")
plt.show()
多次条形图
效果
模板代码
from matplotlib import pyplot as plt
import matplotlib
matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体
#多次条形图
x=["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
y1 = [15746,312,4497,319]
y2 = [12357,156,2045,168]
y3 = [2358,399,2358,362]
bar_width = 0.2
x1 = list(range(len(x)))
x2 = [i+bar_width for i in x1]
x3 = [i+bar_width for i in x2]
plt.figure(figsize=(20,8),dpi=80)
plt.bar(x1,y1,width=bar_width,label="9月14日")
plt.bar(x2,y2,width=bar_width,label="9月15日")
plt.bar(x3,y3,width=bar_width,label="9月16日")
plt.legend()
plt.xticks(x2,x)
plt.xlabel("电影名")
plt.ylabel("票房")
plt.title("标题")
plt.show()
直方图
效果
模板代码
from matplotlib import pyplot as plt
import numpy as np
import matplotlib
import math
matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体
#直方图(等组距)
x = np.random.normal(110,10,250)
x=[int(i) for i in x]
d = 5 #组距
num_bins = math.ceil((max(x)-min(x))/d) #组数
plt.figure(figsize=(20,8),dpi=80)
plt.hist(x,num_bins,range=(min(x),min(x)+num_bins*d)) #normed=True频率直方图
plt.xticks(range(min(x),max(x)+d,d))
plt.xlabel("数量")
plt.ylabel("频数")
plt.title("标题")
plt.show()
用条形图绘制直方图
效果
代码模板
from matplotlib import pyplot as plt
import numpy as np
import matplotlib
import math
matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体
#用条形图绘制直方图(非等组距、各组数已知)
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]
y = np.random.normal(110,50,12)
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(y)),y,width=1)
_x = [i-0.5 for i in range(13)]
_xticks_labels = interval+[150]
plt.xticks(_x,_xticks_labels)
plt.xlabel("数量")
plt.ylabel("频数")
plt.title("标题")
plt.show()