plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似

2024-06-24 12:36:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将世界各国的人均GDP与各国的新冠肺炎死亡总数进行比较。每次我尝试将其转换为散点图时,它都会显示与使用plt.plot()命令显示的图相同的图。这是我的密码:

import pandas as pd
from matplotlib import pyplot as plt
plt.style.use('seaborn-whitegrid')
data = pd.read_csv(r'/Users/john.smith/covid-data.csv')

gdp = data["gdp_per_capita"]
deaths = data["total_deaths"]

plt.scatter(gdp, deaths)
plt.title('GDP-per-Capita Compared to COVID-19 Death Total')
plt.xlabel('GDP-per-Capita')
plt.ylabel('Confirmed Deaths')

plt.tight_layout()
plt.show()

运行此代码时,生成以下图形。这显然不是我想要得到的散点图,值得注意的是,当我使用plt.scatter()命令时,唯一的变化是图上的点变得非常大

Graph produced with faulty code

我在一个完全不同的文件上运行了整个Matplotlib模块的测试。当我使用普通变量而不从CSV文件导入时,如下所示:

x = [7, 3, 8, 3]
y = [1, 5, 7, 4]
plt.scatter(x, y)

然后,代码工作得非常好,并生成散点图。我已经在网上挖掘了几个小时,试图找到一个解决方案,并尝试使用其他方法导入CSV或创建散点图,但没有任何效果。谢谢你的建议


Tags: 文件csv代码import命令dataasplt
1条回答
网友
1楼 · 发布于 2024-06-24 12:36:31

以上评论中的G. Anderson提供了答案

事实证明,我只是没有使用xlim()ylim()命令的经验,所以散点图中的各个点在垂直线上重叠得非常紧密。发生这种情况的原因很简单,因为原始视图窗口对于如此大的数据集来说太宽了

我做了一些轻微的额外研究,试图将两个图放在一个图形上,其中一个被放大,代码如下:

figs, axs = plt.subplots(2)
figs.suptitle('GDP-per-Capita Compared to COVID-19 Death Total')
axs[0].scatter(gdp, deaths)
axs[1].scatter(gdp, deaths)
plt.axis([10000, 20000, 10000, 20000])

这产生了一些我可以使用的好图:

enter image description here

我将研究使这两个情节更具可读性的方法

相关问题 更多 >