美文网首页
python绘制含有误差线的折线图

python绘制含有误差线的折线图

作者: 帅杰 | 来源:发表于2020-07-14 10:35 被阅读0次
    数据如上,上中下三层和总层四个表(此处只显示一个)

    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()

    结果之一如上

    相关文章

      网友评论

          本文标题:python绘制含有误差线的折线图

          本文链接:https://www.haomeiwen.com/subject/rhdxhktx.html