这是我xlsx的表头名字 语文 数学 英语 物理 化学 道德与法治 历史 生物 地理 总分你能帮我用python写一个程序吗要求能分析每一个同学科目的成绩并生成折线图表格要挂在原文件的旁边没有中文乱码还要用总分和成绩区间的柱状图最后还能导出为xlsx
当然可以,以下是代码:
import openpyxl
from openpyxl.chart import LineChart, BarChart, Reference
# 打开工作簿并获取表格
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
# 获取表头行
header = []
for cell in sheet[1]:
header.append(cell.value)
# 获取每个科目的成绩并生成折线图
for i in range(1, len(header)-1):
subject = header[i]
scores = []
for cell in sheet[2:sheet.max_row]:
scores.append(cell[i].value)
chart = LineChart()
chart.title = subject
chart.x_axis.title = '学生'
chart.y_axis.title = '分数'
data = Reference(sheet, min_col=i, min_row=2, max_row=sheet.max_row)
chart.add_data(data)
sheet.add_chart(chart, f'{subject}1')
# 生成总分和成绩区间的柱状图
bar_chart = BarChart()
bar_chart.title = '总分和成绩区间'
bar_chart.x_axis.title = '分数区间'
bar_chart.y_axis.title = '人数'
data = Reference(sheet, min_col=len(header), min_row=2, max_row=sheet.max_row)
bar_chart.add_data(data)
x_labels = Reference(sheet, min_col=len(header)+1, min_row=1, max_row=5)
bar_chart.set_categories(x_labels)
sheet.add_chart(bar_chart, 'K1')
# 保存工作簿
wb.save('example_output.xlsx')
这个程序会循环每个科目的成绩并生成折线图,然后生成总分和成绩区间的柱状图。最后会将表格保存为example_output.xlsx。
原文地址: https://www.cveoy.top/t/topic/bZoB 著作权归作者所有。请勿转载和采集!