![](/img/trans.png)
[英]Matplotlib makes empty plot using plt.plot but shows the plot using plt.scatter
[英]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.