如何让Python数据可视化更加简单:GPT-4 使用 Plotly 可视化全球幸福数据
00 分钟
2023-7-5
2023-8-26
type
status
slug
summary
date
tags
category
password
Text
AI summary
AI custom autofill
Multi-select
Status
URL
hashtag
勘误
标签
标题
类型
贴文
🪄
icon
 
notion image
利用人工智能进行有效、及时的工程可以显着加快复杂数据可视化的 Python 编码过程。
通过提供模块化、精确、详细的说明,GPT-4 完全减少了低级编码,使您能够专注于实施您的解决方案。
例如,为了证明这个概念,我们将访问包含全球幸福数据的数据集。
在四 (4) 个实践模块化步骤中,我们以绘图破折号的形式在地图上显示全球幸福感结果,并创建两个有趣的数据可视化图表来讲述有关数据的详细故事。
让我们开始吧。

第 1 步:读取和预处理数据

第一步涉及加载和预处理数据集。我们必须读取 CSV 文件,将幸福感得分转换为数字,然后计算每个国家/地区的平均得分。
互联网上有很多版本的幸福数据。例如,您可以从此处下载数据集。
我使用的数据集包含 2015 年至 2022 年的数据。以下是 CSV 文件 (happiness_years.csv) 的前 5 行:
现在我们有了一个 CSV 文件并且知道了该文件的结构,我们可以提示 GPT-4 访问该文件并从中创建一个 pandas 数据框。
ChatGPT-4 提示: 您能否生成 Python 代码以使用 pandas 读取“happiness_years.csv”,将“幸福分数”列转换为数字,并计算每个国家历年来的平均幸福分数?“国家/地区”列应设置为索引。
ChatGPT-4 响应:
在此块中,我们使用 pandas 从 CSV 文件加载数据集。
对于除第一列(包含国家/地区名称)之外的每一列,我们将其值转换为数字类型。如果任何值无法转换,“强制”可确保将其替换为“NaN”。
之后,我们计算每个国家/地区所有年份的平均幸福得分,并将其作为新列添加到数据框中。
最后,我们将“Country”设置为索引,以便以后更轻松地进行数据操作。

第2步:读取JSON文件

现在,我们将加载 JSON 文件以帮助我们识别地图中的每个国家/地区。
ChatGPT-4 提示: 您能否提供 Python 代码来使用 json 模块读取名为“world-countries.json”的 JSON 文件?
ChatGPT-4 响应:
此代码读取“world-countries.json”文件,稍后我们将使用该文件将国家/地区名称映射到我们的分区统计图上的地理形状。

第 3 步:使用 Plotly Dash 创建等值区域图

现在对数据进行了预处理,我们将使用 Plotly Dash 创建一个分区统计图,显示每个国家/地区的平均幸福得分。
ChatGPT-4 提示: 您能否使用 pandas DataFrame 和 JSON 文件中的数据生成 Python 代码来创建 Plotly Dash 应用程序和按国家/地区显示平均幸福得分的分区统计图?请确保地图填满大部分显示窗口并具有“快乐”的配色方案。
ChatGPT-4 响应:
此代码片段初始化 Dash 应用程序,然后使用 Plotly Express 生成分区统计图。
注意: GPT-4 没有最新的 dash 库的信息应修改导入语句以删除有关应用程序加载的警告。
在上面的代码中,替换这两行:
用这两行:
我们的数据框和平均幸福得分作为地图的数据输入提供。locationmode参数设置为“国家/地区名称”,对应于我们的“国家/地区”列。
我们还将色阶设置为“YlOrRd”——从黄色到红色的更快乐、温暖的颜色范围。
然后,地图被定义为我们的 Dash 应用程序的布局,其高度较大,占据显示窗口的很大一部分。

第四步:为全球幸福趋势创建更多图表

在分区统计图上成功呈现各个国家/地区的平均幸福得分后,我们现在又创建了两个图表来更深入地研究全球幸福趋势。我们将这些图表并排放置,以便更容易进行比较分析。
ChatGPT-4 提示: 您能否生成 Python 代码来创建两个额外的图表来阐明全球幸福趋势?让我们创建一个折线图来说明每年的全球平均幸福得分,并创建一个条形图来显示平均幸福得分最高的 10 个国家/地区。请确保图表并排放置,并且图表的颜色主题为红色。
ChatGPT-4 响应:
在这个块中,我们首先计算每年全球的平均幸福得分。
使用这些数据,我们创建了一个折线图,使我们能够追踪全球幸福感随时间的波动。
notion image
然后,我们确定平均幸福得分最高的前 10 个国家,并在条形图中可视化这些数据。两个图表都设置为红色。
notion image
通过使用 'display': 'inline-block' 属性,这两个图表并排包含在应用程序布局中。
这构成了全球幸福趋势的综合仪表板。最后,Dash 应用程序已准备好运行并显示我们的可视化效果。
notion image
美丽的结果!您可以调整布局和颜色以获得不同的外观和感觉。
您还可以选择更改正在显示的图表类型。例如,前 10 个国家/地区可能会更好地显示为水平条。或者您可以创建散点图来显示方差。
通过以模块化方式解决此问题,可以轻松返回到步骤 4 并提示输入一组不同的图表。
我希望您觉得这很有趣并且有用!

总之

使用即时工程,特别是采用分步模块化方法,可以更好地与 ChatGPT-4 等 AI 模型进行交互,
通过以这种方式接触人工智能,您可以花更多时间思考数据可以做什么以及如何提出正确的问题,而不是花费大量时间摆弄数据框架和特定于库的语法。
及时的工程设计可以在创纪录的时间内完成一项任务,就像这里介绍的那样。
这种交互,这种人类与人工智能之间的逐步模块化接口,将推动数据可视化领域的创新向前发展。
 
 

评论