GPT怎样教我用Python进行数据可视化

文章目录

  • GPT怎样教我用Python进行数据可视化
    • matplotlib
    • pyecharts
    • 总结

GPT怎样教我用Python进行数据可视化

🚀🚀首先,我们先看一下这段代码,这是我之前写来读取excel文件中xx大学在各个类别中的获奖情况,并保存在一个txt文件里面,代码逻辑比较简单,理解起来应该不难。

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

🚀🚀运行结果:

c/c++程序设计大学a组
一等奖: 0
二等奖: 1
三等奖: 0

c/c++程序设计大学b组
一等奖: 23
二等奖: 51
三等奖: 40

java软件开发研究生组
一等奖: 0
二等奖: 1
三等奖: 0

java软件开发大学b组
一等奖: 4
二等奖: 8
三等奖: 12

python程序设计大学b组
一等奖: 2
二等奖: 6
三等奖: 5

web应用开发大学组
一等奖: 1
二等奖: 1
三等奖: 0

matplotlib

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

import xlrd
import matplotlib.pyplot as pltplt.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 = range(len(x_labels))# 提取各个奖项的数量
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_first, width=0.2, align='center', label='一等奖', color=color_first)
plt.bar(x, y_second, width=0.2, align='edge', label='二等奖', color=color_second)
plt.bar(x, y_third, width=-0.2, align='edge', label='三等奖', color=color_third)# 添加辅助线
plt.axhline(0, color='gray', linewidth=0.8)
plt.axvline(-0.5, color='gray', linewidth=0.8)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()

🚀🚀运行代码,于是得到以下结果:

在这里插入图片描述

🚀🚀乍一看,好像没啥问题,但是细看会发现大问题,就是我们无法正确显示一等奖的个数,一开始我还以为是统计的出了问题,后来检查后并不是,原因还是出现在显示上,看以下代码:

# 绘制直方图
plt.bar(x, y_first, width=0.2, align='center', label='一等奖', color=color_first)
plt.bar(x, y_second, width=0.2, align='edge', label='二等奖', color=color_second)
plt.bar(x, y_third, width=-0.2, align='edge', label='三等奖', color=color_third)

🚀🚀一等奖和二等奖的x和width都是一样的,所以可能出现了重合,看来这里有点小问题,于是我们进行一点微调,然后就有了后面的代码:

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,所以问问GPT能不能基于这个库来优化一下。

🚀🚀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')

🚀🚀运行结果如下所示:

在这里插入图片描述

🚀🚀到这里,就基本就达到我的要求了,甚至超出了我的期望,于是我也没继续追问了,当然肯定还有继续优化的空间,但是也算是基本完成了任务。

总结

🚀🚀虽然笔者接触过一点matplotlib,但是因为长期未使用,用的不算很熟练,于是就想起来用GPT帮我完成基本设计。然后在用的过程中,与他交流,不断向他学习,收获很大,并且本人不会pyecharts库,但是在GPT的介绍下也算有了一些简单的认知,所以把GPT比作一个百问不厌的老师毫不过分,但是还是希望大家能自己主动思考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49728.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat-- 掌握汤姆猫,看这一篇文章就够了

文章目录 一、Tomcat是什么二、Tomcat下载安装三、Tomcat目录结构介绍四、启动Tomcat1.启动失败的原因 五、部署静态页面1.静态页面是什么2. 部署单个 HTML3.部署带有 CSS / JavaScript / 图片 的 HTML4.部署 HTML 到单独的目录中 六、感想 一、Tomcat是什么 百度百科是这样说…

android版会说话的汤姆猫游戏源码

这是一款高仿了android版会说话的汤姆猫游戏源码,大家可以看看吧,非常不错的。 游戏介绍: 是一款休闲游戏,汤姆猫回来了,还带来了全新的冒险旅程!汤姆是您的宠物猫,他可以在您触摸时作出反应,并且用滑稽的声音完整地复述您说的话。…

Tomcat运行不出来汤姆猫404异常

一.发现问题 今天真的是傻缺,运行Tomcat,半天汤姆猫的页面出不来,但是自己写的页面却可以加载出来,给我气的。 30minutes passed,无意间打开了ROOT目录,看到下面这个场景: 这拿头加载啊&…

用Html5制作 汤姆猫 小游戏

以下汤姆猫是用html5制作的小游戏&#xff1b; 建议火狐测试&#xff0c;然后把火狐调成 响应式设计模式&#xff08;以便模拟手机屏幕&#xff09;&#xff0c;设置--->开发者--->响应式设计模式&#xff1b; 如下图 以下是html文件&#xff1a; <!DOCTYPE htm…

汤姆猫炫跑鸿蒙,汤姆猫炫跑最新版下载|汤姆猫炫跑新版本下载 安卓版 v1.4.0.470- 游娱下载站...

汤姆猫炫跑最新版是汤姆猫系列的跑酷休闲手游。汤姆猫经典元素&#xff0c;带给你更多快乐&#xff01;精致流畅的画面&#xff0c;让你在跑酷过程中感受丝滑般的流畅。丰富玩法等你来体验&#xff0c;还有更多活动持续更新哦&#xff01;大家快来游娱下载站下载吧&#xff01;…

汤姆猫java下载手机版_汤姆猫编程星球app下载-汤姆猫编程星球下载v1.0.8-西西软件下载...

汤姆猫编程星球是一款少儿编程教育软件&#xff0c;帮助想学习编程少年快速学习&#xff0c;多彩多样的玩法&#xff0c;锻炼孩子的思维性&#xff0c;逻辑性&#xff0c;从小时候就加强大脑的锻炼&#xff0c;喜欢的朋友可以在西西下载使用。 软件介绍 汤姆猫编程星球介绍和汤…

汤姆猫炫跑鸿蒙,汤姆猫炫跑游戏怎么操作-玩法规则一览

汤姆猫炫跑游戏怎么操作&#xff1f;相信很多玩家感兴趣&#xff0c;今天小编为大家带来汤姆猫炫跑玩法规则一览&#xff0c;感兴趣的玩家不要错过。 汤姆猫炫跑游戏基本操作 你以为在汤姆猫炫跑中&#xff0c;跑就完事了?NO&#xff0c;你还要尽量跑得更远!在保证游戏时间更长…

汤姆猫游戏

pgzero模块制作汤姆猫游戏 游戏运行示例 游戏初始界面 猫咪动画界面 游戏代码 import pgzrun import pygame def yinyue(n):pygame.mixer.init()pygame.mixer.music.load(music/ n .m4a)pygame.mixer.music.play(1, 0)WIDTH 384 HEIGHT 614cat Actor(eat/eat_0.jpg)chi…

idea连接汤姆猫

Tomcat是每个程序员电脑上都会存在的一个微型服务器&#xff0c;JSP需要Tomcat的连接&#xff0c;接下来就说说2021.3.3版本idea的连接。 第一步正常创建项目&#xff1a; 第二步 第三步 第四步 第五步 第六步 回到主页后点击右上角的add configuration: 点击加后在左侧找到Tom…

java网页制作会说话的汤姆猫_android 仿 会说话的汤姆猫 源码

【实例简介】实现了简单的动画效果&#xff0c;有详细的实例讲解文档 【实例截图】 【核心代码】 package com.example.android_tom; import android.app.Activity; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.view.Menu;…

Android实现汤姆猫小游戏

本文同步发表于我的微信公众号&#xff0c;扫一扫文章底部的二维码或在微信搜索 chaodev 即可关注。 相信好多人都玩过汤姆猫这个小游戏&#xff0c;要做这个小游戏其实也不难&#xff0c;这不&#xff0c;现写一个&#xff0c;先看效果演示。 目前实现的主要功能点包括以下两…

用freepy一键生成中美GDP季度对比柱状图

这是一个单独运行的程序。下载&#xff1a; gen_echarts_bar.zip-互联网文档类资源-CSDN下载 用非常少的代码生成酷炫的图表&#xff0c;可以说&#xff0c;python和echarts是珠联璧合、完美搭档&#xff01; 该程序已经内置了python、pyecharts等需要的后台。点击运行即可生成…

2018年中美自动驾驶进展分析报告

https://www.toutiao.com/a6687368786560942599/

中美青年创客大赛启动,50万奖金等你来挑战!

中美创客交流嘉年华--2018 中美青年创客大赛火爆启动&#xff0c;50 万奖金花落谁家&#xff1f; 由教育部主办、谷歌等承办的 2018 中美青年创客大赛已于本周启动。 中美青年创客大赛&#xff08;China-US Young Maker Competition&#xff0c;简称CUYMC&#xff09;&#x…

中美数据中心产业对比及思考

近年来&#xff0c;随着大数据、云计算、人工智能&#xff08;AI&#xff09;等前沿技术领域飞速发展&#xff0c;数据应用越来越受到人们重视&#xff0c;从数据背后解读人类社会活动规律和行为习惯&#xff0c;已经为新经济模式形成奠定基础。数据已从以往的计算、统计、测量…

中美自动驾驶最新融资情况:千万级与十亿级美元的距离

https://www.toutiao.com/a6679005032412611084/ 中美是目前自动驾驶最为火热的两个国家&#xff0c;恰好也是世界GDP排名前两位的国家&#xff0c;无论是中国还是美国&#xff0c;除了科技巨头和整车企业投身自动驾驶领域&#xff0c;还有大量的初创公司蜂拥而入。 自动驾驶技…

中美IPv6发展现状分析

本文作者 马军锋&#xff1a;中国信息通信研究院技术与标准研究所主任工程师。 侯乐青&#xff1a;武警青海总队网管中心高级工程师。 在2016年12月27日发布的《“十三五”国家信息化规划》中提及&#xff1a;到2020年&#xff0c;5G完成技术研发测试并商用部署&#xff0c;互联…

数字化时代-17:从中国历年五年规划后的GDP增长看中美大碰撞的必然

前言&#xff1a; 本文通过观察中国历年五年规划后的GDP增长与美国同期GDP的增长的关系&#xff0c;展示中美大碰撞的必然性。 这是中国崛起路上必然要经过的一道坎&#xff0c;无法回避&#xff0c;能做的就是降低它的负面影响。 我们先看一下日美大碰撞&#xff1a; 在上图…

中美日印程序员收入对比

点击上方 好好学java &#xff0c;选择 星标 公众号 重磅资讯、干货&#xff0c;第一时间送达今日推荐&#xff1a;硬刚一周&#xff0c;3W字总结&#xff0c;一年的经验告诉你如何准备校招&#xff01; 个人原创100W访问量博客&#xff1a;点击前往&#xff0c;查看更多一直都…