python绘制有误差线的折线图

数据示意
数据如上

"""
author: Shuai-jie Shen 沈帅杰
CSDN: https://blog.csdn.net/weixin_45452300
公众号: AgBioIT
"""
import pandas as pd
import numpy as np
import matplotlib
matplotlib.rcParams['backend'] = 'SVG'
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
#读取数据
data = pd.read_excel(r'C:\Users\Administrator\Desktop\图(1).xlsx',sheet_name = 2)
std_table = data.groupby(by = '上层光截获').std() # 计算标准差
figdata = data.groupby(by = '上层光截获').mean() #计算均值
# 绘图
# 标记样式常用的值有(./,/o/v/^/s/*/D/d/x/</>/h/H/1/2/3/4/_/|)https://www.jianshu.com/p/b992c1279c73,参考
plt.errorbar(figdata.columns,figdata.loc['R1D1'],yerr=std_table.loc['R1D1'],fmt='k-o',lw = 2,ecolor='k',elinewidth=1,ms=7,capsize=3) 
plt.errorbar(figdata.columns,figdata.loc['R1D2'],yerr=std_table.loc['R1D2'],fmt='k-x',lw = 2,ecolor='k',elinewidth=1,ms=7,capsize=3)
plt.errorbar(figdata.columns,figdata.loc['R1D3'],yerr=std_table.loc['R1D3'],fmt='k-d',lw = 2,ecolor='k',elinewidth=1,ms=7,capsize=3)
plt.errorbar(figdata.columns,figdata.loc['R2D1'],yerr=std_table.loc['R2D1'],fmt='k-s',lw = 2,ecolor='k',elinewidth=1,ms=7,capsize=3)
plt.errorbar(figdata.columns,figdata.loc['R2D2'],yerr=std_table.loc['R2D2'],fmt='k-h',lw = 2,ecolor='k',elinewidth=1,ms=7,capsize=3)
plt.errorbar(figdata.columns,figdata.loc['R2D3'],yerr=std_table.loc['R2D3'],fmt='k-^',lw = 2,ecolor='k',elinewidth=1,ms=7,capsize=3)
# 设置坐标轴标签文本
Songti = fm.FontProperties(fname='C:\Windows\Fonts\simsun.ttc') #创建宋体
plt.xlabel('growth stage\n生育时期', fontproperties=Songti, fontsize=14)
plt.ylabel('上层光截获\nUpper light interception', fontproperties=Songti, fontsize=14)
# 创建字体,设置图例 windows自带字体路径
myfont = fm.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.ttf',
                           size=10)
plt.legend(prop=myfont, fontsize=19,ncol=2)
plt.tight_layout() #防止保存时大小不合适
plt.savefig(r'C:\Users\Administrator\Desktop\{}.jpg'.format('Upper light interception'), dpi=400)
plt.savefig(r'C:\Users\13290\Desktop\{}light interception.svg'.format(name[i]), format='svg') #  存为矢量图
plt.show()

结果
结果

### 使用Pandas读取Excel数据并绘制绝对误差折线图 为了实现这一目标,可以按照以下方法操作: #### 导入必要的库 首先需要导入处理Excel文件以及绘图所需的库。`pandas`用于读取Excel文件中的数据;而`matplotlib.pyplot`或`seaborn`则用来创建图表。 ```python import pandas as pd import matplotlib.pyplot as plt import seaborn as sns ``` #### 加载Excel数据 通过`pandas.read_excel()`函数来加载Excel文件的数据到DataFrame对象中。假设有一个名为`data.xlsx`的文件位于当前工作目录下,并且该文件内含有两列分别代表预测值和真实值。 ```python df = pd.read_excel('data.xlsx') print(df.head()) # 查看前几行数据确认结构 ``` #### 计算绝对误差 基于已有的预测值和实际值计算每一对数值之间的绝对误差,并将其作为新列加入原始DataFrame中以便后续作图使用。 ```python df['absolute_error'] = abs(df['predicted_value'] - df['true_value']) ``` #### 绘制绝对误差折线图 利用`matplotlib`或者`seaborn`包来进行绘图。这里选择用`seaborn.lineplot()`来展示绝对误差随样本编号变化的趋势[^2]。 ```python plt.figure(figsize=(10, 6)) sns.lineplot(data=df, x=df.index, y='absolute_error', marker='o') # 设置图形属性 plt.title('Absolute Error Line Plot') plt.xlabel('Sample Index') plt.ylabel('Absolute Error') plt.grid(True) # 展示图像 plt.show() ``` 上述代码片段展示了如何从Excel文档中提取数据并通过Python强大的数据分析工具集对其进行可视化分析的过程[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值