python随机生成成绩+字典统计+条形图绘制

python随机生成成绩+字典统计+条形图绘制

  1. 先生成随机数据
  2. 使用字典进行统计
  3. 绘制条形图
from openpyxl import *
from openpyxl import workbook
import random
from pylab import mpl
import numpy
import matplotlib.pyplot as plt


path='C:/Users/lenovo/Desktop/test.xlsx';
path_s='C:/Users/lenovo/Desktop/test2.xlsx';
w=load_workbook(path);
ws=w.active;

n=100; #总人数
l=['语文','数学','英语','政治']
subject=[];
for _ in range(n):
    subject.append(random.choice(l))
#print(subject)


for i in range(n): #加成绩
    ws.cell(row=i+1,column=1,value=random.choice(l))

for i in range(n): #加分数
    ws.cell(row=i+1,column=2,value=random.randint(70,100))

#用字典计分数
dic={}  #统计科目总分
for i in range(n):
    key=ws.cell(row=i+1,column=1)
    print(key.value)
    if(key.value in dic.keys()):
        dic[key.value]+=ws.cell(row=i+1,column=2).value
        #print(dic[key])
    else:
        dic.update({key.value:0})

# 使用字典重写数据
i=1;
sub=[];
num=[];
for ele in dic.items():
    sub.append(ele[0])
    num.append(ele[-1])
    ws.cell(row=i,column=3,value=ele[0])
    ws.cell(row=i,column=4,value=ele[-1])
    i=i+1


# 条形图绘图
mpl.rcParams['font.sans-serif'] = ['SimHei']
plt.bar(sub,num)
plt.xlabel('科目');
plt.ylabel('num');
plt.title('随便起的啥都不是');
# plt.xticks([1,2,3,4],sub)
plt.show()

w.save(path); # 保存文件

结果:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值