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[i]+'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[i]), dpi=1000)

    plt.close()



结果之一如上
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 小伙伴说要画一个简单的带误差线的折线图,graphpad用不了,我琢磨一下,可以用R语言。本段代码是探究不同处理条...
    森尼啊阅读 2,957评论 0 0
  • ---------------------------------------------------------...
    无涯2016阅读 298评论 0 0
  • pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,期中read_csv和read_tabl...
    仙灵儿阅读 557评论 0 0
  • stackplot函数语法及参数含义 stackplot(x,*args,**kargs) x指定面积图的x轴数据...
    _曹杰阅读 1,960评论 0 1
  • pandas 数据分析【转】 frompandasimportSeries, DataFrameimportpan...
    gongdiwudu阅读 1,337评论 0 1