影子叩

搜索
夜间模式◐

python绘制含有误差线的折线图
· summer · 发布于 · 2020-07-15 · 352 次点击 · 复制地址

倔强青铜Ⅱ   summer  · 2020-07-15 02:44:47 · 显示全部楼层 · 阅读

数据如上,上中下三层和总层四个表(此处只显示一个)如果数据出现误差,对于绘图来说是一件麻烦的事情,今天小编教大家怎么用python来绘制带有误差的折线图,操作步骤如下:
import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.font_manager as fm

#读取数据

#利用循环一次做四个图

for i in range(4):


    data = pd.read_excel(r'C:\Users\Administrator\Desktop\图.xlsx',sheet_name = i)

    std_table = data.groupby(by = '上层光截获').std() # 计算标准差

    figdata = data.groupby(by = '上层光截获').mean() #计算均值

    # 绘图

    # 标记样式常用的值有(./,/o/v/^/s/*/D/d/x/</>/h/H/1/2/3/4/_/|)

    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-p',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)

    # 设置坐标轴标签文本

    name=['Upper ','Middle ','lower ','Total ','上层','中层','下层','总']

    Songti = fm.FontProperties(fname='C:\windows\Fonts\simsun.ttc')

    plt.xlabel('Growth stage\n生育阶段', fontproperties=Songti, fontsize=14)

    plt.ylabel(name+'light interception\n'+name[i+4]+'光截获', fontproperties=Songti, fontsize=14)

    # # 创建字体,设置图例 windows自带字体路径

    myfont = fm.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.ttf',

                              size=10)

    plt.legend(prop=myfont, fontsize=18,ncol=2,edgecolor='w')#nco列数

    plt.tight_layout() #防止保存时大小不合适

    plt.savefig(r'C:\Users\Administrator\Desktop\{}light interception.jpg'.format(name), dpi=1000)

    plt.close()



按照以上步骤就可以轻松绘制出带有误差的折线图,非常的方便,记住这段代码,可以为你的工作省不少力气

免责声明:
影子论坛所发布的一切内容仅限用于学习和研究目的,请勿用于商业或者非法用途,否则一切后果由用户自负。
请支持正版得到更好的正版服务。如有侵权请邮件与我们联系处理。Mail To:swatxhim@outlook.com

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表