簡體   English   中英

plt.scatter() 圖的行為類似於 Matplotlib 中的 plt.plot() 圖

[英]plt.scatter() plots behaving like plt.plot() plots in Matplotlib

我試圖將世界各國的人均 GDP 與每個國家的 COVID-19 死亡總數進行比較。 每次我嘗試將其變成散點圖 plot 時,它顯示的 plot 與使用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()

運行此代碼時,會生成以下圖表。 這顯然不是我想要得到的分散 plot,值得注意的是,當我使用plt.scatter()命令時唯一改變的是 plot 上的點變得非常大。

使用錯誤代碼生成的圖表

我完全在不同的文件上對整個 Matplotlib 模塊進行了測試。 當我使用普通變量而不從 CSV 文件導入時,如下所示:

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

然后代碼工作得很好,並產生了一個分散的 plot。 我一直在網上挖掘幾個小時試圖找到解決方案,並嘗試使用其他導入 CSV 或創建散點圖的方法,但沒有任何效果。 謝謝你的任何提示。

答案由上述評論中的G. Anderson提供。

事實證明,我只是沒有使用xlim()ylim()命令的經驗,因此散點圖 plot 中的各個點在垂直線上非常緊密地重疊。 發生這種情況的原因僅僅是因為原始視圖 window 對於這么大的數據集來說太寬了。

我做了一些額外的研究,嘗試將兩個圖放在一個圖形上,其中一個被放大,這是代碼:

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

這產生了一些我可以使用的好圖:

在此處輸入圖像描述

我將研究使這兩個圖更具可讀性的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM