GPT-4高级数据分析:初学者的图表和地图指南

GPT-4高级数据分析:初学者的图表和地图指南

利用数据科学,将原始数字转化为有意义的数据可视化图表对于初学者程序员来说可能是一项艰巨的任务。

使用GPT-4高级数据分析工具(请不要被名称所迷惑),新手程序员无需编写任何代码就可以以图表和地图的形式生成有意义的表示。

更好的是,将工作代码作为生成的解决方案的一部分呈现给你,以便根据需要进行调整和调整。

因此,你不仅可以在可视化方面取得巨大进步,同时还可以学习如何编写代码。

本文将为你介绍使用GPT-4中的高级数据分析工具来上传数据集并显示图表和地图的每个步骤,而无需编写一行代码。如果你想了解更多关于数据分析的相关内容,可以阅读以下这些文章:
Excel中的Python:将重塑数据分析师的工作方式
如何成为数据分析顾问?
成为更好的数据分析师的5个习惯!
Noteable:自动进行数据分析的ChatGPT插件

Dall-e创作的图像—印象派绘画
用生动的厚油画色彩绘制了一幅地球地图

以下就是它的工作原理。

任何数据分析过程的第一步都是了解数据集的结构和内容。

在这个练习中,我们将使用从visionofhumanity.org网站(位于这里)下载的“全球和平指数”(GPI)数据。

让我们先预览一下GPI数据集的前几行。

提示GPT-4高级数据分析(ADA):“显示数据集的前几行。”

GPT-4 ADA响应:

2008–2022年GPI CSV文件中的数据子集

该数据集显示了2008年至2022年各国的GPI得分。

如我们所见,数据集中的每一行都包含一个带有iso3c国家代码的国家。这将使数据映射非常简单,因为数据分析工具能够使用这个3位数的国家代码轻松创建地图。

我们可以看到数据范围很广,跨越15年。这使我们能够跟踪国家(和/或地区)如何随时间的推移而变化。该数值越高,一个国家就被认为“越不安全”。

要使该文件可用于高级数据分析工具,请单击“+”图标并选择你的文件。

热力图允许我们检测多个变量的模式。通过用不同颜色表示选定国家每年的GPI得分,我们可以比较和对比全球和平趋势。

使用Python matplotlib库,我们可以创建一个热图,其中每个单元格的颜色强度对应于GPI分数。深色代表不太和平的分数,而浅色代表比较和平的国家。

GPT-4 ADA提示:“生成5个选定国家的热图。”

GPT-4 ADA响应:

ADA生成的热图显示不同年份(2008-2022年)各国的水平

为了清晰起见,让我们集中讨论一部分国家:阿富汗、阿尔巴尼亚、阿尔及利亚、安哥拉和阿根廷。我们将看到他们的GPI分数从2008年到2022年是如何演变的。

如果我们点击“Show Work”图标,我们可以查看生成的Python代码:

import matplotlib.pyplot as plt
import seaborn as sns

# Subset of data for heatmap visualization
subset_countries = ["Afghanistan", "Albania", "Algeria", "Angola", "Argentina"]
heatmap_data = df[df["Country"].isin(subset_countries)].set_index("Country").drop(columns=["iso3c"])

# Generate heatmap using seaborn
plt.figure(figsize=(12, 6))
sns.heatmap(heatmap_data, cmap="YlGnBu", annot=True, linewidths=.5)
plt.title("GPI Scores (2008–2022) for Selected Countries")
plt.xlabel("Year")
plt.ylabel("Country")

plt.show()

对数据集df进行过滤,只保留这些国家,并删除“iso3c”列。将国家名称设置为数据的索引。

然后使用Seaborn的热图功能生成热图,使用“YlGnBu”色图对GPI分数进行颜色编码。

添加注释以显示实际值,并在单元格之间添加线条以使其清晰。

热图用标题标记,x轴标记年份,y轴标记国家,最后使用plt.show()显示。

折线图非常适合显示数据随时间的进展或回归。对于我们的GPI数据,一个折线图可以清楚地显示出各个国家这些年的和平得分是如何演变的。

GPT-4 ADA提示:“使用相同的国家,创建一个折线图来观察GPI的进展。”

GPT-4 ADA响应:

ADA生成的折线图显示不同年份(2008-2022年)各国的水平

该折线图显示了我们所选国家从2008年到2022年的GPI进展情况。每条线的高峰和低谷都向我们讲述了影响每个国家和平水平的政治气候、社会变化和全球事件的故事。

#Generate line chart for the selected countries’ GPI progression
plt.figure(figsize=(14, 7))
for country in subset_countries:
  plt.plot(heatmap_data.columns, heatmap_data.loc[country], label=country, marker='o')

plt.title("GPI Score Progression (2008–2022) for Selected Countries")
plt.xlabel("Year")
plt.ylabel("GPI Score")
plt.legend()
plt.grid(True, which='both', linestyle=' - ', linewidth=0.5)

plt.show()

与前面的示例类似,但折线图是使用Seaborn的绘图函数生成的。

折线图用标题标记,x轴标记年份,y轴标记国家,最后使用plt.show()显示。

条形图提供了跨类别数据的比较。通过关注2022年的最新GPI数据,我们可以使用条形图来比较不同国家在选定年份的和平得分。

GPT-4 ADA提示:“使用相同的国家,创建一个条形图来观察GPI的进展。”

GPT-4 ADA响应:

ADA生成的条形图显示不同年份(2008-2022年)各国的水平

条形图提供了我们所选国家2022年GPI分数的直接比较。

我们可以根据各国的得分,一眼就能确定哪些国家更和平,哪些国家面临挑战。

# Generate bar chart for the 2022 GPI scores of the selected countries
plt.figure(figsize=(12, 6))
sns.barplot(x=subset_countries, y=heatmap_data["2022"], palette="viridis")

plt.title("GPI Scores for 2022: Selected Countries")
plt.xlabel("Country")
plt.ylabel("GPI Score")

plt.show()

同样,这与前面的示例类似,但该条形图是使用Seaborn的条形图函数生成的,并且该图表仅显示2022年的情况

条形图用标题标记,x轴标记国家,y轴标记2022年的GPI得分。

以choropleth(heat)的形式在地理地图上可视化数据,为查看者提供了全球空间视角。

对于这张地图,我们将保持简单,并要求高级数据分析工具为特定年份创建一个choropleth地图。

这个特定的数据集有一个名为“iso3c”的字段,可用于全球地图上的国家边界。这极大地简化了使用ADA工具的映射可视化。

GPT-4 ADA提示:请生成显示2022年所有国家的choropleth图。

GPT-4 ADA响应:

显示2022年GPI数据的Chropleth地图

GPT-4 ADA创建的相关代码:

import geopandas as gpd
import matplotlib.pyplot as plt

# Load the world shapefile
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

# Merge the world shapefile with the GPI data on the iso3c field for the year 2022
merged = world.set_index('iso_a3').join(gpi_data.set_index('iso3c')[['2022']])

# Plot the choropleth map for 2022
fig, ax = plt.subplots(1, 1, figsize=(15, 10))
merged.boundary.plot(ax=ax, linewidth=1)
merged.plot(column='2022', ax=ax, legend=True,
legend_kwds={'label': "Global Peace Index 2022"},
cmap='viridis_r')
ax.set_title("Global Peace Index 2022")

plt.show()

从这段代码中,你可以看到“世界地图”是根据gpd形状文件创建的。

然后使用iso3c字段(每个国家的“官方”3个字母代码)合并每个国家2022年的数据值。

因此,有了包含人口统计数据的CSV文件和唯一的国家标识符来标识地理边界,就没有更多了。

有趣的是,在创建choropleth地图的过程中,ADA工具完成了错误检测和纠正过程。

这是GPT-4中以前的代码生成工具所缺少的。

以前,我必须将代码复制/粘贴到Python编辑器中并运行程序,这通常会生成错误。

然后,我必须将错误复制/粘贴到GPT-4提示符中,并警告它创建不正确的代码。

此外,ADA工具现在比以前的版本(例如,代码解释器)使用更多的可视化库来生成数据可视化。例如,seaborn以前是不可用的,但在本文的示例中使用了它。

使用plotly库仍然存在问题——ADA无法可视化数据——但was能够创建一个可下载的HTML文件(实际上有效!)

此工具并不总是能成功处理你的请求。与许多GPT-4工具一样,它可能一开始会充满热情地接受任务,然后开始一次又一次地绊倒。

你需要知道这个工具实际上能做什么。你需要仔细设计你的提示。我已经为你做了一些准备工作。

它不能做什么:

  • 创建交互式图表和地图 – 我试图让它为所有国家创建一个plotly滑块地图 – 它可以生成代码,但无法在窗口中显示实际地图。
  • 显示使用Plotly库的任何内容。它可以为你创建一个HTML文件,但无法在聊天窗口中显示它。

GPT-4中的高级数据分析(ADA)工具进一步简化了Python数据可视化的创建。

数据可视化和代码显示在GPT-4聊天窗口中。

以前,程序员需要将代码复制/粘贴/保存到Python编辑器中,然后从编辑器中运行该代码。正如所指出的,这消除了你以前需要进行的来回迭代,以找到一个有效的解决方案。

在提出解决方案之前,ADA自行迭代纠错/调试阶段。

这并不是说代码解释器是完美的——事实并非如此。ADA工具在某些情况下会出现问题(“你能再加载一次那个文件吗?我好像弄丢了…”),然后,我陷入了一个试图调试解决方案的循环中。

总的来说,我强烈推荐高级数据分析工具——尤其是如果你是一个初学者,想要学习如何轻松有效地可视化你的数据。

感谢阅读!你还可以订阅我们的YouTube频道,观看大量大数据行业相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:John Loewen, PhD
翻译作者:文杰
美工编辑:过儿
校对审稿:Jason
原文链接:https://pub.towardsai.net/gpt-4-advanced-data-analysis-a-beginners-guide-to-charts-and-maps-d59763487750