python--plt绘制多条柱状图

绘制表格(统计.excel)柱状图,每一张表格绘制一张图片

  1. 导入需要的包
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

  1. 读取excel文件
path = r"C:\Users\dell\Desktop\编辑\统计.xlsx"  #文件地址
data = pd.read_excel(path, None)  # 读取数据,设置None可以生成一个字典,字典中的key值即为sheet名字,若sheet_name='Sheet2'则只读取一个表
  1. 画图函数
def f(L1,L2,L3,L4,L5,L6,L7,title,x,name):
    plt.rcParams['font.sans-serif'] = ['Times New Roman']  # 用来正常显示中文标签,新罗马字体
    plt.rcParams["axes.unicode_minus"] = False
    plt.title(title) #表名
    plt.xlabel("Dataset")#x轴名
    plt.ylabel(x)#y轴名
    labels = ["Nongjing", "Nongzi", "TaoJindi", "CNZJ"]#x轴坐标
    x = np.arange(len(labels))  # x轴刻度标签位置
    width = 0.1  # 柱子的宽度
   #表的效果是分四个数据集,每个数据集上其中方法的准确率
    plt.bar(x - 1.5 * width, L1, width, label='Jieba')
    plt.bar(x - 0.5 * width, L2, width, label='HanLP')
    plt.bar(x + 0.5 * width, L3, width, label='PKUSEG')
    plt.bar(x + 1.5 * width, L4, width, label='Snownlp')
    plt.bar(x + 2.5 * width, L5, width, label='NLPIR')
    plt.bar(x + 3.5 * width, L6, width, label='Thulac')
    plt.bar(x + 4.5 * width, L7, width, label='LTP')

    plt.xticks(x, labels=labels)
    plt.legend(loc='lower left', bbox_to_anchor=(1, 0.2), fontsize=9.5, frameon=0, borderpad=0, columnspacing=0.1,
               handlelength=0.4)
    plt.savefig('./images/name', dpi=500, bbox_inches='tight')#dpi表示高清存储,bbox_inches表示自适应画布,白边不会太大
    plt.show()

4.对表格数据处理成需要的列表格式


print(data.keys())
for sh_name in data.keys() :
    F1 = []
    F2 = []
    F3 = []
    F4 = []
    F5 = []
    F6 = []
    F7 = []
    if(sh_name=="transformer"):


        print(sh_name)
        df=pd.DataFrame(pd.read_excel(path,sheet_name=sh_name))
        p=df['precision']
        # print(p)
        F1.extend([p[0],p[1],p[2],p[3]])
        F2.extend([p[4],p[5],p[6],p[7]])
        F3.extend([p[8],p[9],p[10],p[11]])
        F4.extend([p[12],p[13],p[14],p[15]])
        F5.extend([p[16],p[17],p[18],p[19]])
        F6.extend([p[20],p[21],p[22],p[23]])
        F7.extend([p[24], p[25],p[26],p[27]])
        print(F1)
        print(F2)
        print(F3)
        print(F4)
        print(F5)
        print(F6)
        print(F7)
        f(F1,F2,F3,F4,F5,F6,F7,sh_name+"-precision","precision",sh_name+"-precision")

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值