如何用 ChatGPT 做数据进阶可视化?(三维交互图与动图视频)

news2024/11/24 9:25:52

你只需输入数据和需求,结果自然来。

09e8950cdc3ea7cafce0403c4c7fee66.jpeg

自动可视化

在《如何用 ChatGPT 帮你自动分析数据?》这篇文章里,我已经为你介绍过 Code Interpreter 。它是 ChatGPT 的一个模式,目前还在 alpha 测试阶段。


10f60432bf0d288d38e03ebaf87ace6b.jpeg

Code Interpreter 可以接收文件输入,然后在用户的指令下与文件内容进行交互。它提供一个虚拟运行环境,让你可以在里面直接执行 Python 代码,还支持图文输出和文件下载链接生成功能。

《如何用 ChatGPT 帮你自动分析数据?》里面,我用一组样例贷款数据给你演示了 Code Interpreter 如何帮你分析每个变量的含义,及其在数据集中的分布。咱们当时主要做的,是机器学习建模。

5973a6e1efa99aeefb05b5327e1725eb.jpeg

视频中没有展示的部分,你其实可以自己扩展。只需要提示 Code Interpreter 进行可视化,你就能看到相应的统计图形。

4937d0b9ed85a7a89c4d2fcfc65cac63.jpeg

上面是连续型数据的描述,你也可以对类别数据做一些统计。

dfb6b9748ae1d8ea9f4aa8699b8618f9.jpeg

上面这些都是单变量描述统计。你还可以让 Code Interpreter 自动分析多变量之间的关系,例如下面这张图就展示了贷款数据集里不同变量间的关联。

2edae7c1ed9545bbb866177a8d51ea2b.jpeg

在 这篇文章里,我也为你展示了如何使用 Code Interpreter 来做复杂网络仿真进程的可视化。

c5120ae359d85a3ae1bf7cfad31d605e.jpeg

632d0c49c041c18e41cea6c4d98a53a5.png今天这篇文章,咱们来谈谈 Code Interpreter 的「高级」自动可视化功能。这里我主要介绍两方面的内容:

  • 三维交互图

  • 动图视频制作。

有些数据涉及时间轴,在分析和展示的时候,会用到上述图形。在时间基础上,查看数据集不同变量间的关系流变,至少会让可视化结果更有冲击力。

数据

我们首先当然需要找到一个合适的数据集。换作以前,我会乖乖去一些开放数据集网站找寻,或者直接在引擎里搜索时间序列数据。但现在我会问自己一个问题:需要我自己找吗?

当然不要。

怎么办?懒人有懒办法,我使用下面提示语在 ChatGPT 联网模式下搜索。

请帮我寻找 5 个公开的时间序列数据集,要求是包含多个维度的。用 markdown 列表列出数据集名称、下载地址,以及相关的介绍。谢谢

eab81140b2b11daa116a83519595082a.jpeg

看到了没,ChatGPT 这是翻阅了多少页面啊?这些网页这要是我自己手动看,怎么也得用个 10 几分钟吧?而且还不一定找得全面,挑得精细。

很快,Code Interpreter 就把数据集查找结果整理出来了:

8ca187e138f22df329607c8330da5521.jpeg

Code Interpreter 找到了 3 个数据集,我觉得已经足够了。因为我其实只需要一个嘛。点开第一个链接,浏览器显示出下载页面。

1747210a3a0e39a8348754a556dad8b2.jpeg

下载 CSV 文件,打开一看是这个样子。

4fc70672a81054f186e4f09e61285735.jpeg

你可以看到 P 代表产品(product),W 代表周(week),每一周每一种产品的销量都展示出来了。

我首先想画三维交互图。还是进入 Code Interpreter 模式,点击下图中的加号按钮,上传这个数据集。

d83759dec42f0d6488c30d95994917e0.jpeg

上传 CSV 文件后,Code Interpreter 自动开始了处理。

e9b6929fc212645a27736655708250cb.jpeg

这是它实际执行的代码:

e57cf2be3819b42c1ff69f4a91804d03.jpeg

Code Interpreter 通常先对变量名进行推理,同时检查前 5 条数据大概样子,来验证自己的推理。

下面是 Code Interpreter 给出的初步分析结果:

56b9fd3563835f1c544bbbadea07371d.jpeg

用 ChatGPT 翻译以后是这样的:

该数据集包含不同产品的每周销售数据。每行对应于特定的产品,由 “Product_Code” 列指示。列 “W0” 到 “W51” 表示每个产品的每周销售数字,“W0” 是第 0 周的销售数字,“W1” 是第 1 周,以此类推,直到第 51 周的 “W51”。除了每周销售数字外,还有标准化值用于表示每周销售量,分别为 'Normalized 0' 至 'Normalized 51'。通常使用标准化值将在不同比例上测量的值调整为公共比例。请问您想要对这些数据进行什么操作?例如我们可以执行一些描述性统计、可视化、预测等。

三维交互

数据有了,我的可视化分析要求是:

请把前 10 种商品在全部时间的变化,做成 3D 散点图,不同商品间用颜色加以区别。不要直接输出图形,而是做成下载链接形式。谢谢

Code Interpreter 立即开始为我生成这个图,它说使用的包是 Matplotlib,挺好。

81584238a847deb7ee4b288892304bc5.jpeg

但是不出所料,很快它的执行过程就出问题了。

9d2bcee772623a4c6b52593ba28ad873.jpeg

其实你根本就不用担心。Code Interpreter 执行出问题时,会自己解释这个问题是什么,为什么发生,以及分析和尝试解答如何规避。这里 Code Interpreter 说要重新分配唯一数字 ID,再次尝试。我什么都没做,就看它在那里解释,然后看它重塑数据,很快图就绘制出来了。

4ca222ce48192d6ff3461a7f8c5f87cd.jpeg

其实这结果与我的要求有点出入。我明明要求它不要直接绘图,而是提供下载链接,可它还是把结果给我画出来了。好在这也无伤大雅。

按照链接打开 3D 散点图,是这个样子:

fcec261623d6cc7b874386bf6d6cd0dd.jpeg

尽管 Code Interpreter 完成了任务,但是显然我不希望仅仅获得一张静态图,因为这样只能从一个角度来观察。这不是 Code Interpreter 的错误,而是我的要求不够精细。于是我改变了提示语,以达成交互效果:

很好,不过我希望生成的图形是可以交互式的。能否重新生成并且生成下载链接?谢谢

看到没有,我还鼓励了 Code Interpreter 一下。有人说这种鼓励和礼貌用语是「废话」,我不这样看。即便这些礼貌用语不能提升结果的准确性,总会让你觉得人机交互过程充满了善意,至少自己心里舒服不是?

5c26661f11ca7f6cfcb263dd6f264e54.jpeg

Code Interpreter 说要达成交互的目标, PNG 格式不行,要生成 HTML,使用的包是 plotly,很好嘛。

5c2b02f72364d84b361f70b73f7f45ba.jpeg

很快交互式图形结果重新生成了,咱们下载后打开,看看效果。

504a38b370469607fba2b8aa2b784c3c.gif

这个交互图,你可以用鼠标对图形整体转动、拖动和缩放,找到这些散点之间的关联。感觉怎么样?

不怎么样。眼花缭乱的,谁能看清这些数据之间的关系?

我给出 Code Interpreter 新的建议:

很好,不过我觉得这个图看起来很乱。能否以你的经验,对可视化过程加以改造,使得展示效果更好一些?你可以改变绘图要求的设定。但是我依然需要 3D 交互图形。谢谢

4449f7e9a1c3fc9d344eadd6d6c6ac4f.jpeg

Code Interpreter 的反馈是:3D 散点图会显得混乱,特别是点重叠或靠近时。所以它自己提出整改措施如下:

第一,不用散点了,用折线图。这就是为什么在提示语中给它一定的自由度很重要。如果不给,Code Interpreter只能按散点图来处理。给了自由度后,它可以把数据可视化经验用上,帮你做出更好的技术路线选择。

第二,对销售数据进行偏移化,使线条在 3D 空间分开。这其实是我们自己做可视化时也会使用的技巧。

第三,不同颜色,表示不同商品。

774a7b510bbe3ed3ad30e85789e3845b.jpeg

Code Interpreter 重新生成了下载链接,我们看看效果。

0a191ac0ba31b31075717601eb5d7faa.gif

现在的结果变成了折线图。折线图的好处是每一种商品更加紧凑,更清晰,你可以清楚看到哪一种商品销量一直高,哪些只在低谷徘徊。你还可以拉近,查看不同时间段上不同商品销售额的对比。

这个图完美吗?绝对算不上。但比之前的混乱散点图清晰多了,这就算是迭代改进的力量吧?

动图视频

下一步,我们来制作动画。我的提示语是:

请使用前 5 种商品的数据,以你认为合适的方式制作销量随时间变化的动画视频,做成 mp4 格式并且提供链接给我下载。谢谢

注意这里我没有指定用什么变量做横轴,什么变量做纵轴,也没有要求颜色、形状、范围。但是 Code Interpreter 凭借自身的经验,都可以自己做出分析决策。

cb78cf60d8645095fbe46562d5248147.jpeg

Code Interpreter 使用 Matplotlib Animation 来制作折线图,并存成 MP4,还给了我一个下载链接。

001cdced95782c0d8b5ea1c8b37fe22f.jpeg

结果给出的是一张静态图。我按照链接下载打开后,对应的视频是这个样子:

007c432e2c926e091548c77edee68577.gif

不同商品的销量都展现出来,而且根据时间顺序变化来逐步绘制,好不好?

不好!

线条颜色相似度这么高,基本分不出谁是谁,这图有什么用?

我说:

因为颜色和线条关系,这个视频看起来比较杂乱,能否根据你的经验改进一下?

25d7846f5519367f8260216c1ada6c82.jpeg

Code Interpreter 说了 4 个解决步骤:更明显的颜色区分,线条粗细不同,使用不同线型,每帧只显示当周为止的一种商品销售数据。

我一边看,一遍评价 —— 好,好,好…… 且慢,这第四条是什么意思?

c3b4675baab655efc54bfd19cdad5d1a.jpeg

我下载了新的输出结果,看完哭笑不得。

b4fc41f32d7f8c6672208288051c0985.gif

它每次只画一条线,而且只有前 10 周的数据,这显然违背了我们的初衷。我们希望在全部 52 周时间里同时整体对比 5 种商品。

于是我又提出要求:

不大好。使用不同颜色、不同线条形状是正确的。但是我依然希望能够一起展现全部 5 种商品的变化,时间周期也是全部的 52 周。另外把播放速度稍微放慢一些,最好能在线条当前终点位置动态显示商品的名称编号,比较直观。请调整输出,谢谢

34f16700bb2f3f3a20a49922a7aac175.jpeg

Code Interpreter 改进后的输出是这样的:

942437935a5141f545b5d984012504ef.jpeg

我通过链接下载,打开看看:

40b0157f5b1205b4501e629aebc7a19e.gif

这次的结果有明显进步,但 Code Interpreter 自动给出的颜色还有些相近。

我建议继续调整:

把颜色的差别弄得再大一些,播放速度降低到目前的 1/3,谢谢

fa2bb038fddd5616fac64048593578c1.jpeg

Code Interpreter 说收到了两条意见,于是继续画。结果如下:

2c66e1716b6f778108f4830fda5b51b5.gif

颜色区分开了,线条线型也对,但是速度我没感觉降下来。回头咱们抽空再敦促 Code Interpreter 调一下吧。

小结

本文我为你介绍了 ChatGPT 的 Code Interpreter 模式的数据高级可视化功能,主要包括三维交互图和动图视频。通过演示,你已经见到了 Code Interpreter 的能力。它现在还只是个 Alpha 测试版,存在的问题依旧很多。你可以把目前的 Code Interpreter 当成一个迭代螺旋的起点。我们希望它变得越来越好用。对数据可视化高手,Code Interpreter 可以帮忙完成许多过去需要手动完成的琐碎枯燥工作。当然,对于新手来说,Code Interpreter 带来的优势更是不言而喻,是吧?只不过,你要注意对它生成的结果加以仔细甄别,以求稳妥。

祝(自动)数据可视化愉快!

点赞 +「在看」,转发给你身边有需要的朋友。收不到推送?那是因为你只订阅,却没有加星标

欢迎订阅我的小报童付费专栏,每季度更新不少于10篇文章。目前价格优惠。2023年6月1日起,小报童订阅费调整,从目前的30元/季度,调整为40元/季度。

c0e4d7784f93118a623d7002a2eb87c1.jpeg

如果有问题咨询,或者希望加入社群和热爱钻研的小伙伴们一起讨论,订阅知识星球吧。不仅包括小报童的推送内容,还可以自由发帖与提问。之前已经积累下的帖子和问答,就有数百篇。足够你好好翻一阵子。知识星球支持72小时内无条件退款,所以你可以放心尝试。

c8e48c270be8635b3fb6e637a5b89bc0.jpeg

若文中部分链接可能无法正常显示与跳转,可能是因为微信公众平台的外链限制。如需访问,请点击文末「阅读原文」链接,查看链接齐备的版本。 

延伸阅读

  • 如何在 Python 绘图中正常显示中文?(视频教程)

  • 如何用 Python 可视化《三国》人物与兵器出现频率?(视频教程)

  • 如何用 ChatGPT 帮你自动分析数据?

  • 如何用 Python 做舆情时间序列可视化?

  • 如何交互可视化你的卡片式笔记网络?

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 图片编码之必备技能

在进行 Android 开发时,不可避免地会接触到许多图片格式,例如 JPEG、PNG 等。就以 JPEG 格式为例,它是一种有损压缩模式,使用 YCbCr 的颜色空间来保存色彩信息。当需要在屏幕上显示图片时,会将 JPEG 数据解码成 RGB 进…

淘宝用户体验分析方法论

本专题共10篇内容,包含淘宝APP基础链路过去一年在用户体验数据科学领域(包括商详、物流、性能、消息、客服、旅程等)一些探索和实践经验,本文为该专题第一篇。 在商详页基于用户动线和VOC挖掘用户决策因子带来浏览体验提升&#x…

chatgpt赋能python:Python扫描IP段的简介

Python 扫描 IP 段的简介 Python 是一种广泛应用于数据科学、机器学习、Web 开发等领域的高级编程语言。作为一种通用编程语言,Python 也可以应用于网络安全领域。其中,Python 可以用于扫描 IP 段的网络安全工具开发。 Python 扫描 IP 段 Python 扫描…

5.27下周黄金行情走势预测及开盘操作策略

近期有哪些消息面影响黄金走势?下周黄金多空该如何研判? ​黄金消息面解析:周五(5月26日)黄金大幅下跌,主要受到美国数据影响,美国公布的4月PCE和耐用品订单数据向好,再次强化市场对美联储的鹰派押注。现货…

软件测试之自动化测试【webdriver API】

目录 一、webdriver API 1.元素的定位 2.操作测试对象 3.添加等待 3.1 sleep 强制等待 3.2 隐式等待 3.3 显式等待 4.打印信息 5.浏览器的操作 5.1 浏览器的前进和后退 5.2 浏览器滚动条操作 5.3 浏览器最大化及设置浏览器宽、高 6.键盘按键 7. 鼠标事件 8.定位…

chatgpt赋能python:Python找零-让你的生活更轻松

Python 找零 - 让你的生活更轻松 在我们日常生活中,找零是一个很常见的问题。无论是在超市买东西、给朋友拿钱、或者是做商业交易,都需要进行找零操作。而使用 Python 编程语言,可以让这个问题更加简单易懂,让我们来一起学习 Pyt…

Python中的布尔类型以及布尔值介绍

什么是布尔类型? 布尔类型是一种逻辑类型,它只有两个取值:True(真)和False(假)。在Python中,True和False是内置的布尔类型常量,用于表示真和假的状态。 布尔运算符 在P…

一场九年前的“出发”:奠基多模态,逐鹿大模型

原创:谭婧 全球AI大模型的技术路线,没有多少秘密,就那几条路线,一只手都数得过来。 而举世闻名的GPT-4浑身上下都是秘密。 这两件事并不矛盾。为什么呢? 这就好比,回答“如何制造一台光刻机?”。…

Yolov5/Yolov7涨点技巧:MobileViT移动端轻量通用视觉transformer,MobileViTAttention助力小目标检测,涨点显著

1. MobileViT介绍 论文:https://arxiv.org/abs/2110.02178 现有博客都是将MobileViT作为backbone引入Yolov5,因此存在的问题点是训练显存要求巨大,本文引入自注意力的Vision Transformer(ViTs):MobileViTAttention MobileViT是一种基于Transformers的轻量级模型,它可以用于…

chatgpt赋能python:Python操作手机:SEO指南

Python 操作手机:SEO 指南 在移动设备占据互联网用户市场大头的今天,应用程序的互动变得越来越受欢迎。这就需要我们在开发和优化网站时将手机端无缝集成到我们的计划中。使用 Python 语言可以有效地实现此目标,本文将探讨如何使用 Python 操…

【一篇文章带你掌握HTML中ul、ol和dl列表的使用 - 超详细】

【一篇文章带你掌握HTML中ul、ol和dl列表的使用 - 超详细】_dl标签_China_YF的博客-CSDN博客 前提 在项目开发过程中,列表是非常常见的,因此列表标签也是我们使用相对频繁的标签,但是当我们遇到列表的时候有没有停顿思考一下,我在…

提醒!手机卡注销前,一定要做的四件事!

现在更换手机卡的情况对小伙伴们来说都是家常便饭的事情了,但是很多小伙伴在手机换号的时候,经常忘记解绑以前手机号绑定的一些业务,为此产生了很多不必要的麻烦,今天的这篇文章就是要告诫大家换号之前一定要做的几件事&#xff0…

基于yolov5的双目鱼体长度检测

前言 在水产养殖行业中,鱼体长度是衡量鱼类品质和成熟度的重要指标。然而,传统的鱼体长度测量方法需要手动测量,不仅耗时耗力还容易出现误差。正好最近做了一个基于双目视觉的鱼体检测项目,在这里和大家分享以下思路。 步骤 第一…

跨境电商环境搭建和买家账号培养的关键考虑因素

作为跨境电商环境搭建和买家账号培养的专业技术开发人员,我深知在亚马逊、速卖通、阿里国际、速卖通、美客多、shopee、Lazada、ebay、Temu等平台上运营的卖家面临的挑战 其中,补单是一项关键的工作,它能帮助卖家增加商品列表和评价数量&…

这个 冒泡排序详解过程 我能吹一辈子!!!

文章目录 冒泡排序概念冒泡排序算法思路冒泡排序代码实现冒泡排序优化 冒泡排序概念 冒泡排序是比较基础的排序算法之一,其思想是相邻的元素两两比较,较大的数下沉,较小的数冒起来,这样一趟比较下来,最大(小)值就会排列…

ES2020新语法:可选链操作符

目录 一、前言 二、案例 三、方法一:AND运算符 四、方法二:可选链操作符( ?. ) 1. 语法 2. 可选链与函数调用 3. 处理可选的回调函数或事件处理器 4.可选链和表达式 5.可选链访问数组元素 6.使用空值合并操作符 一、前言 今天看一个实习生写的…

Linux高级---configmap和secret

文章目录 一、ConfigMap1、介绍2、创建configmap3、使用configmap4、引入环境变量的另一种方式 二、Secret1、介绍2、创建secret3、使用secret4、引入环境变量的另一种方式 一、ConfigMap 1、介绍 ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使…

chatgpt赋能python:Python指定日期处理方法,从入门到实践

Python指定日期处理方法,从入门到实践 Python是一种高级编程语言,因其简单易学和功能强大而深受开发者喜爱。在日常工作中,我们经常需要对日期进行处理和计算。Python提供了丰富的日期和时间处理库,因此我们可以轻松地进行日期处…

el-table分页保留勾选的数据

1、目标效果 代码全部写在下方App.vue中&#xff0c;复制粘贴即可运行 目前选中了5条数据 点击下方切换分页&#xff0c;选中的数据消失了 2、原理 &#xff08;1&#xff09;el-table复选框&#xff0c;用一个变量数组selectedRow:[ ] 监听选择了哪些数据 <el-table-colu…

【Python】Requests库基本使用

知识目录 一、写在前面✨二、Requests库三、接口调用四、总结撒花&#x1f60a; 一、写在前面✨ 大家好&#xff01;我是初心&#xff0c;希望我们一路走来能坚守初心&#xff01; 今天跟大家分享的文章是 Python中Requests库在爬虫和自动化中的使用 &#xff0c;希望能帮助到…