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()

 

posted @ 2024-05-17 09:39  秋刀鱼CCC  Views(389)  Comments(0Edit  收藏  举报