当前位置: 首页 > news >正文

使用GPT生成python图表

首先,生成一脚本,读取到所需的excel表格

import xlrddata = xlrd.open_workbook('xxxx.xls')  # 打开xls文件
table = data.sheet_by_index(0)  # 通过索引获取表格# 初始化奖项字典
awards_dict = {"一等奖": 0,"二等奖": 0,"三等奖": 0
}# 初始化科目字典
subjects_dict = {}# 遍历表格的每一行,跳过表头
for i in range(1, table.nrows):row = table.row_values(i)# 是xx大学才进行处理if row[2] == 'xx大学':# 转为小写,避免首字母不一样带来的误判subject = row[4].lower()# 获得的奖项award = row[5]# 加入字典if subject not in subjects_dict:subjects_dict[subject] = awards_dict.copy()subjects_dict[subject][award] += 1# 将结果写入文件
with open("result.txt", "w") as f:for subject, awards in subjects_dict.items():f.write(f"{subject}\n")for award, count in awards.items():f.write(f"{award}: {count}\n")f.write("\n")

matplotlib

我们要GPT根据上面的代码,用直方图展示xx大学在各个类别中的获奖情况,也就是去对这个文本文件进行数据可视化,于是chatGPT就生成了以下的代码

import xlrd
import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']    # 设置中文字体,不然显示不了中文
data = xlrd.open_workbook('xxxx.xls')  # 打开xls文件
table = data.sheet_by_index(0)  # 通过索引获取表格# 初始化奖项字典
awards_dict = {"一等奖": 0,"二等奖": 0,"三等奖": 0
}# 初始化科目字典
subjects_dict = {}# 遍历表格的每一行,跳过表头
for i in range(1, table.nrows):row = table.row_values(i)if row[2] == 'xx大学':# 转为小写,避免首字母不一样带来的误判subject = row[4].lower()award = row[5]if subject not in subjects_dict:subjects_dict[subject] = awards_dict.copy()subjects_dict[subject][award] += 1# 直方图展示xx大学在各个类别中的获奖情况
x_labels = subjects_dict.keys()
x = np.arange(len(x_labels))  # 使用numpy的arange生成连续的横坐标值# 提取各个奖项的数量
y_first = [subjects_dict[subject]['一等奖'] for subject in x_labels]
y_second = [subjects_dict[subject]['二等奖'] for subject in x_labels]
y_third = [subjects_dict[subject]['三等奖'] for subject in x_labels]# 设置颜色
color_first = 'skyblue'
color_second = 'lightgreen'
color_third = 'lightcoral'# 绘制直方图
plt.bar(x, y_third, width=0.2, align='center', label='三等奖', color=color_third)
plt.bar(x + 0.2, y_second, width=0.2, align='center', label='二等奖', color=color_second)
plt.bar(x - 0.2, y_first, width=0.2, align='center', label='一等奖', color=color_first)plt.xlabel('类别')
plt.ylabel('获奖数量')
plt.title('xx大学在各个类别中的获奖情况')
plt.xticks(x, x_labels)
plt.legend()# 调整图例位置和边框样式
plt.legend(loc='upper right', frameon=False)# 设置图形背景色
plt.gca().set_facecolor('whitesmoke')# 调整图形布局
plt.tight_layout()plt.show()

pyecharts

pyecharts 是一个用于生成 Echarts 图表的类库。 Echarts 是百度开源的一个数据可视化 JS 库。

import xlrd
from pyecharts.charts import Bar
from pyecharts import options as optsdata = xlrd.open_workbook('xxxx.xls')  # 打开xls文件
table = data.sheet_by_index(0)  # 通过索引获取表格# 初始化奖项字典
awards_dict = {"一等奖": 0,"二等奖": 0,"三等奖": 0
}# 初始化科目字典
subjects_dict = {}# 遍历表格的每一行,跳过表头
for i in range(1, table.nrows):row = table.row_values(i)if row[2] == 'xx大学':# 转为小写,避免首字母不一样带来的误判subject = row[4].lower()award = row[5]if subject not in subjects_dict:subjects_dict[subject] = awards_dict.copy()subjects_dict[subject][award] += 1# 直方图展示xx大学在各个类别中的获奖情况
x_labels = subjects_dict.keys()# 提取各个奖项的数量
y_first = [subjects_dict[subject]['一等奖'] for subject in x_labels]
y_second = [subjects_dict[subject]['二等奖'] for subject in x_labels]
y_third = [subjects_dict[subject]['三等奖'] for subject in x_labels]# 使用 Pyecharts 绘制直方图
bar = (Bar().add_xaxis(list(x_labels)).add_yaxis('一等奖', y_first).add_yaxis('二等奖', y_second).add_yaxis('三等奖', y_third).set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)),yaxis_opts=opts.AxisOpts(name='获奖数量'),title_opts=opts.TitleOpts(title='xx大学在各个类别中的获奖情况'),legend_opts=opts.LegendOpts(pos_right='5%', pos_top='20%'))
)# 生成图表并保存为 HTML 文件
bar.render('bar_chart.html')

http://www.lryc.cn/news/305990.html

相关文章:

  • [深度学习]yolov9+deepsort+pyqt5实现目标追踪
  • C#_WaitAll、WhenAll、async及await
  • leetcode hot100零钱兑换Ⅱ
  • 路由器配置DMZ主机映射
  • ubuntu22.04@Jetson Orin Nano之CSI IMX219安装
  • Kettle下载地址
  • 密码学基本概念
  • 9个最受欢迎的开源自动化测试框架盘点!
  • 高速稳定、网络隔离,解析“向日葵控控”远控方案在医疗行业应用
  • 抖音视频提取软件使用功能|抖音视频下载工具
  • Django入门指南:从环境搭建到模型管理系统的完整教程
  • Elasticsearch从入门到精通-01认识Elasticsearch
  • Element UI的安装和使用
  • c++的指针完整教程
  • WordPress前端如何使用跟后台一样的Dashicons图标字体?
  • redisson实现延迟队列
  • 【教程】N2N V3内网穿透、异地组网,包括Win/Linux/Android,包括不同内网实现adb远程连接
  • JavaAPI常用类01
  • 在 where子句中使用子查询(二)
  • TongWEB(东方通),部署WEB前后端项目步骤
  • Vue中如何使用dayjs
  • 数据库-MySQL
  • C语言每日一题(61)盛最多水的容器
  • uni-app 经验分享,从入门到离职(四)——页面栈以及页面跳转的 API(开发经验总结)
  • Go Module常用命令
  • ubuntu压缩和解压
  • 华为HCIP Datacom H12-831 卷24
  • react + Typescript 中 react有多少内置的类型 分别是什么
  • harbor(docker仓库)仓库部署 - 高可用
  • 题目 1262: 邮局选址问题