跳转至

绘图速查\#

matplotlib库常用函数用法

'''
1. 引入数据
2. 查看函数
3. 调用函数
'''

import pandas as pd
import matplotlib.pyplot as plt
import os
plt.rc('font', family = 'Songti SC')

# --------------------data----------------------
# 设置需要绘制的 CSV 文件的路径数组
background_csv_paths = [
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/background 50.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/background 100.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/background 150.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/background 200.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/background 250.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/background 300.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/background 350.CSV'
]

sample_csv_paths = [
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/sample 50 2#.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/sample 100.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/sample 150.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/sample 200.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/sample 250.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/sample 300.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/sample 350.CSV'
]

two_background_csv_paths = [
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/background 350.CSV',
    '/Users/kiharari/Desktop/仪器分析实验/原位红外光谱法 数据/background1.CSV'
]
# --------------------end-----------------------

def draw_spectra(csv_paths, title="", xlim=None, ylim=None):
    plt.figure()
    # 遍历路径数组
    for path in csv_paths:
        # 读取 CSV 文件
        df = pd.read_csv(path, header=None, names=['Column1', 'Column2'])
        # 获取文件的基本名称(无路径和扩展名)
        basename = os.path.splitext(os.path.basename(path))[0]
        # 选择两组数据
        x = df['Column1']
        y = df['Column2']

        # 在同一图表中绘制图像
        plt.plot(x, y, label=basename)

    # 设置图例位置在图像右上方
    plt.legend(loc='upper right')

    # 设置图表标题和坐标轴标签
    if xlim is not None:
        plt.xlim(xlim)
    if ylim is not None:
        plt.ylim(ylim)
    plt.xlabel('波长/nm')
    plt.ylabel('吸光度')
    plt.title(title)
    plt.show()

# --------------------draw---------------------

draw_spectra(background_csv_paths, title="背景光谱")
draw_spectra(two_background_csv_paths, title="两组背景光谱")
draw_spectra(sample_csv_paths, title="样品光谱", ylim = (-0.1, 0.2))