日期:2024.03.12
内容:将matplotlib的常用方法做一个记录,方便后续查找。
- 基本使用
# demo01 from matplotlib import pyplot as plt # 设置图片大小,也就是画布大小 fig = plt.figure(figsize=(20,8),dpi=80)#图片大小,清晰度 # 准备数据 x = range(2,26,2)# x = list(range(2,26,2)) 这两种写法都可以 y = [15,13,14.5,17,20,25,26,26,27,22,18,15] # 设置x和y轴的刻度 x_ticks01 = [ i for i in range(1,25)] y_ticks01 = range(min(y),max(y) + 1) plt.xticks(x_ticks01) plt.yticks(y_ticks01) # 绘图 plt.plot(x,y) # 保存图像 plt.savefig('./test01.png') plt.savefig('./test01.svg') # 展示数据 plt.show()
- 存在中文
# demo02-统计2小时内每分钟的温度情况 from matplotlib import pyplot as plt import random # 设置图片大小 fig = plt.figure(figsize=(20,10),dpi=80)#图片大小,清晰度 # 全局设置中文字体 plt.rcParams['font.sans-serif'] = ['Simhei'] # 准备数据 x = list(range(1,121,1)) y = [random.randint(20,25) for i in range(120)]#把random.randint(20,25)执行120次 # 设置图的标题,x轴和y轴对应的坐标信息 plt.title("时间-温度对应图(10-12点)",fontsize = 18) plt.xlabel("时间",fontsize = 18) plt.ylabel("温度",fontsize = 18) # 设置x和y轴的刻度 x_ticks01 = x x_ticks01Label = [f"9点{i}"for i in range(00,60)] x_ticks01Label += [f"10点{i}"for i in range(00,60)] y_ticks01 = range(min(y),max(y) + 1) plt.xticks(x_ticks01[::10],x_ticks01Label[::10],rotation = 45,fontsize = 18)# rotation = 45 刻度逆时针旋转45° plt.yticks(y_ticks01,fontsize = 18) # 绘图 plt.plot(x,y) # 展示数据 plt.show()
- 添加图例
# demo03-如何加图例 from matplotlib import pyplot as plt import random # 设置图片大小 fig = plt.figure(figsize=(20,10),dpi=80)#图片大小,清晰度 # 全局设置中文字体 plt.rcParams['font.sans-serif'] = ['Simhei'] plt.rcParams.update({'font.size': 25})#设置图例字体大小 # 准备数据 x = list(range(11,31)) y1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1] y2 = [1,0,1,1,2,2,1,2,1,1,1,2,1,2,1,1,1,1,1,1] # 设置x和y轴的刻度 x_ticks01 = x x_ticks01Label = [f"{i}岁"for i in x] plt.xticks(x_ticks01,x_ticks01Label,rotation = 45,fontsize = 18)#rotation = 45 刻度逆时针旋转45° # 绘图 plt.plot(x,y1,label = "中文",color = 'r',linestyle="--",linewidth = "5") plt.plot(x,y2,label = "b") # 将label = "a"和“b”添加到图中 plt.legend(loc='upper left') plt.grid(0.5)#绘制网格 # 展示数据 plt.show()