python画三个折线图并在一张图片展示出来(包括设置刻度值字体大小添加图例折线图加文字等)
直接上代码:
#!usr/bin/env python # -*- coding:utf-8 -*- """ @author: Suyue @file: dryzhexian.py @time: 2024/05/16 @desc: """ import pandas as pd import matplotlib import matplotlib.pyplot as plt import matplotlib.ticker as ticker from matplotlib.pyplot import MultipleLocator matplotlib.rc("font",family='YouYuan') # 第一张图 input_file = '乌审旗_class.xlsx' # 设置图片大小,精度 # plt.figure(figsize = (16,8),dpi = 100) df = pd.read_excel(input_file) x = df['time'] y1 = df['PA'] y2 = df['SPI'] y3 = df['MI'] y4 = df['MCI'] y5 = df['Rsm'] # 让x,y刻度线向内 plt.rcParams['xtick.direction'] = 'in' plt.rcParams['ytick.direction'] = 'in' # 说明图是几行几列 plt.subplot(3, 1, 1) # 创建折线图 plt.plot(x,y1) plt.plot(x,y2) plt.plot(x,y3) plt.plot(x,y4) plt.plot(x,y5) # 设置背景网格线为虚线 plt.grid(linestyle="--") # 设置横轴标记竖着写,字体大小 plt.xticks(x, x, rotation=270) #刻度值字体大小设置(x轴和y轴同时设置) plt.tick_params(labelsize=9) # 设置刻度间隔,x以每5显示,y以每1显示 x_major_locator=MultipleLocator(5) y_major_locator=MultipleLocator(1) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) # plt.title('乌审旗干旱',fontsize=14) # plt.xlabel('时间',fontsize=14) # plt.ylabel('干旱等级',fontsize=14) # 加图释 plt.legend(['PA','SPI','MI','MCI','Rsm'],fontsize=10,loc="upper left") # 加文字 plt.text(x=1, # 文本x轴坐标 y=4.5, # 文本y轴坐标 s='乌审旗', # 文本内容 fontdict=dict(fontsize=12, color='black', ), # 字体属性字典 ) # 第二张图 input_file = '杭锦旗_class.xlsx' # 设置图片大小,精度 # plt.figure(figsize = (16,8),dpi = 100) df = pd.read_excel(input_file) x = df['time'] y1 = df['PA'] y2 = df['SPI'] y3 = df['MI'] y4 = df['MCI'] y5 = df['Rsm'] # 让x,y刻度线向内 plt.rcParams['xtick.direction'] = 'in' plt.rcParams['ytick.direction'] = 'in' # 说明图是几行几列 plt.subplot(3, 1, 2) # 创建折线图 plt.plot(x,y1) plt.plot(x,y2) plt.plot(x,y3) plt.plot(x,y4) plt.plot(x,y5) # 设置背景网格线为虚线 plt.grid(linestyle="--") # 设置横轴标记竖着写,字体大小 plt.xticks(x, x, rotation=270) #刻度值字体大小设置(x轴和y轴同时设置) plt.tick_params(labelsize=9) # 设置刻度间隔,x以每5显示,y以每1显示 x_major_locator=MultipleLocator(5) y_major_locator=MultipleLocator(1) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) # plt.title('杭锦旗干旱',fontsize=14) # plt.xlabel('时间',fontsize=14) plt.ylabel('干旱等级',fontsize=14) # 加图释 plt.legend(['PA','SPI','MI','MCI','Rsm'],fontsize=10,loc="upper left") # 加文字 plt.text(x=1, # 文本x轴坐标 y=4.5, # 文本y轴坐标 s='杭锦旗', # 文本内容 fontdict=dict(fontsize=12, color='black', ), # 字体属性字典 ) # 第三张图 input_file = '鄂托克前旗_class.xlsx' # 设置图片大小,精度 # plt.figure(figsize = (16,8),dpi = 100) df = pd.read_excel(input_file) x = df['time'] y1 = df['PA'] y2 = df['SPI'] y3 = df['MI'] y4 = df['MCI'] y5 = df['Rsm'] # 让x,y刻度线向内 plt.rcParams['xtick.direction'] = 'in' plt.rcParams['ytick.direction'] = 'in' # 说明图是几行几列 plt.subplot(3, 1, 3) # 创建折线图 plt.plot(x,y1) plt.plot(x,y2) plt.plot(x,y3) plt.plot(x,y4) plt.plot(x,y5) # 设置背景网格线为虚线 plt.grid(linestyle="--") # 设置横轴标记竖着写,字体大小 plt.xticks(x, x, rotation=270) #刻度值字体大小设置(x轴和y轴同时设置) plt.tick_params(labelsize=9) # 设置刻度间隔,x以每5显示,y以每1显示 x_major_locator=MultipleLocator(5) y_major_locator=MultipleLocator(1) ax = plt.gca() ax.xaxis.set_major_locator(x_major_locator) ax.yaxis.set_major_locator(y_major_locator) # plt.title('鄂托克前旗干旱',fontsize=14) plt.xlabel('时间',fontsize=14) # plt.ylabel('干旱等级',fontsize=14) # 加图释 plt.legend(['PA','SPI','MI','MCI','Rsm'],fontsize=10,loc="upper left") # 加文字 plt.text(x=1, # 文本x轴坐标 y=4.5, # 文本y轴坐标 s='鄂托克前旗', # 文本内容 fontdict=dict(fontsize=12, color='black', ), # 字体属性字典 ) plt.figure(num=1,figsize=(16,8),dpi=300) # 出图 plt.show()