科研绘图之折线图

在科研数据分析中,折线图是一种常见且有效的可视化工具,用于展示数据随时间或其他连续变量的变化趋势。Python,作为一种强大的编程语言,提供了多种绘制折线图的工具和库,其中最常用的包括 Matplotlib 和 Seaborn。

Matplotlib 是 Python 的一个绘图库,广泛应用于科研数据的可视化。它允许用户创建高质量的折线图,并提供了灵活的绘图功能。使用 Matplotlib,科研人员可以轻松地设置图表的标题、坐标轴标签、图例、网格等,以便更好地展示数据。Matplotlib 的主要功能包括:

  • 绘制基本折线图及其变体
  • 添加误差条、填充区域等辅助元素
  • 自定义图表的外观和样式
  • 保存图表为多种格式的文件

在科研中,折线图的应用广泛,如展示实验结果随时间的变化、比较不同算法在同一数据集上的性能等。使用 Python 绘制折线图不仅能提高数据展示的清晰度,还能帮助科研人员更好地分析和解读数据结果,下面我们主要讲述用Matplotlib绘制折线图的一些案例和优化效果。

目录

一、Matplotlib绘制基本折线图

二、Matplotlib绘制带误差范围折线图

三、总结对比


一、Matplotlib绘制基本折线图

import matplotlib.pyplot as plt  # 导入 Matplotlib 库中的 pyplot 模块,用于绘制图表

# 数据
cola_train_data = ['1%', '5%', '10%', '20%']  # 训练集大小的标签(单位为百分比)
roberta_mcc = [45.8, 53.4, 54.9, 58.1]  # RoBERTa 模型对应的 MCC 值
coai_mcc = [48.4, 55.2, 56.9, 59.7]  # RoBERTa+CoAi 模型对应的 MCC 值

# 创建折线图
plt.figure(figsize=(5, 5))  # 创建一个新的图表,设置图表大小为 5x5 英寸
plt.plot(cola_train_data, roberta_mcc, marker='o', linestyle='-', color='b', label='RoBERTa')  
# 绘制第一条折线,表示 RoBERTa 模型的 MCC 值
# marker='o' 指定数据点的标记为圆形,linestyle='-' 设定折线为实线,color='b' 设定折线颜色为蓝色,label='RoBERTa' 指定图例标签为 RoBERTa
plt.plot(cola_train_data, coai_mcc, marker='s', linestyle='-', color='g', label='RoBERTa+CoAi')  
# 绘制第二条折线,表示 RoBERTa+CoAi 模型的 MCC 值
# marker='s' 指定数据点的标记为方形,linestyle='-' 设定折线为实线,color='g' 设定折线颜色为绿色,label='RoBERTa+CoAi' 指定图例标签为 RoBERTa+CoAi

# 添加标题和标签
# plt.title(' ')  # 可以取消注释并设置标题
plt.xlabel('Training Set Size (%) on COLA Dataset')  # 设置 x 轴标签
plt.ylabel('MCC')  # 设置 y 轴标签

plt.ylim(40, 70)  # 设置 y 轴的显示范围,从 40 到 70

# 显示图例
plt.legend()  # 显示图例,用于区分不同的折线

# 显示网格
plt.grid(True)  # 显示网格线,便于阅读图表数据

# 显示图表
plt.show()  # 展示图表

这段代码使用 Matplotlib 绘制了一个包含两条折线的折线图,用于比较两种模型在不同训练集大小下的 MCC 值。每条折线都有不同的标记和颜色,以便于区分,并且图表上包含了坐标轴标签、图例和网格线。

效果图:

二、Matplotlib绘制带误差范围折线图

import matplotlib.pyplot as plt  # 导入 Matplotlib 库中的 pyplot 模块,用于绘制图表
import numpy as np  # 导入 NumPy 库,用于处理数组和数学计算

# 数据
cola_train_data = np.array([1, 5, 10, 20])  # 训练集大小的数组(单位为百分比),使用 NumPy 数组格式
roberta_mcc = [45.8, 53.4, 54.9, 58.1]  # RoBERTa 模型对应的 MCC 值
coai_mcc = [48.4, 55.2, 56.9, 59.7]  # RoBERTa+WACL 模型对应的 MCC 值

# 假设误差范围
roberta_err = [0.5, 0.5, 0.5, 0.5]  # RoBERTa 模型的误差范围(假设值)
coai_err = [0.5, 0.5, 0.5, 0.5]  # RoBERTa+WACL 模型的误差范围(假设值)

# 创建折线图
plt.figure(figsize=(5, 5))  # 创建一个新的图表,设置图表大小为 5x5 英寸
plt.plot(cola_train_data, roberta_mcc, marker='o', linestyle='-', color='b', label='RoBERTa')  
# 绘制 RoBERTa 模型的折线图
# marker='o' 指定数据点的标记为圆形,linestyle='-' 设定折线为实线,color='b' 设定折线颜色为蓝色,label='RoBERTa' 指定图例标签为 RoBERTa

plt.fill_between(cola_train_data, 
                 np.array(roberta_mcc) - np.array(roberta_err), 
                 np.array(roberta_mcc) + np.array(roberta_err), 
                 color='b', alpha=0.2)  
# 填充 RoBERTa 模型的误差范围
# np.array(roberta_mcc) - np.array(roberta_err) 计算误差下限,np.array(roberta_mcc) + np.array(roberta_err) 计算误差上限
# color='b' 设置填充颜色为蓝色,alpha=0.2 设置填充透明度

plt.plot(cola_train_data, coai_mcc, marker='s', linestyle='-', color='g', label='RoBERTa+WACL')  
# 绘制 RoBERTa+WACL 模型的折线图
# marker='s' 指定数据点的标记为方形,linestyle='-' 设定折线为实线,color='g' 设定折线颜色为绿色,label='RoBERTa+WACL' 指定图例标签为 RoBERTa+WACL

plt.fill_between(cola_train_data, 
                 np.array(coai_mcc) - np.array(coai_err), 
                 np.array(coai_mcc) + np.array(coai_err), 
                 color='g', alpha=0.2)  
# 填充 RoBERTa+WACL 模型的误差范围
# np.array(coai_mcc) - np.array(coai_err) 计算误差下限,np.array(coai_mcc) + np.array(coai_err) 计算误差上限
# color='g' 设置填充颜色为绿色,alpha=0.2 设置填充透明度

# 添加标题和标签
plt.xlabel('Training Set Size (%) on COLA Dataset')  # 设置 x 轴标签
plt.ylabel('MCC')  # 设置 y 轴标签

plt.ylim(45, 65)  # 设置 y 轴的显示范围,从 45 到 65

# 显示图例
plt.legend(loc='upper left')  # 显示图例,位置设置在左上角

# 显示网格
plt.grid(True)  # 显示网格线,便于阅读图表数据

# 保存图表
plt.savefig('./photo/COLA_WACL', dpi=300)  # 将图表保存为文件,分辨率为 300 dpi

# 显示图表
plt.show()  # 展示图表

这段代码使用 Matplotlib 和 NumPy 绘制了一个折线图,展示了 RoBERTa 和 RoBERTa+WACL 模型在不同训练集大小下的 MCC 值,并通过误差范围填充来表示不确定性。代码还设置了图表的标签、范围、图例和网格线,并将图表保存为文件。 

效果图:


在这段代码中,plt.legend(loc='upper left') 将图例的位置设置为左上角。你可以根据需要调整 loc 参数的值来改变图例的位置,例如 'upper right''lower left' 等。 


三、总结对比

  • 基本折线图 适用于数据量较小且无需显示误差的简单对比。
  • 带误差范围的折线图 提供了额外的信息,能够更好地反映数据的不确定性,适合需要详细数据展示和分析的场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dr.Petrichor

作者逐个题目分析的噢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值