簡體   English   中英

如何在 matplotlib(Python) 中有效地繪制日期?

[英]How to efficiently plot dates in matplotlib(Python)?

這是一個代碼,它繪制了從 2021 年 1 月到 7 月在印度的所有 Covid-19 測試用例。 記錄是每天的,但我的scatterplot只顯示 17 個點並且日期重疊。 有什么有效的方法可以做到這一點嗎?

df.to_numpy()
df1 = df[(df.date.str.endswith("21")) & (df.location == "India")]
plt.scatter(x=df1.date, y=df1.total_cases)

這是圖表:

在此處輸入圖片說明

非常感謝

您可以使用 xticks 屬性以任意度數旋轉

plt.xticks(rotation=45)

讓我們首先創建一個玩具數據框:

data = [[f"{i%30+1:02}/{6+i//30:02}/21", np.random.randint(i, i+10)**2] 
        for i in range(5, 50)]
df = pd.DataFrame(data, columns=["date", "total_cases"])

我建議將日期轉換為日期格式,以便在一般情況下更容易處理,尤其是 matplotlib 以適應其軸。

df.date = pd.to_datetime(df.date, format="%d/%m/%y")

現在 matplotlib 可以處理它並且可以選擇適當數量的 x-ticks。 由於標簽相當長,我們也可以旋轉它。

plt.plot(df.date, df.total_cases, '.')
plt.xticks(rotation=25, ha="right")
plt.tight_layout()
plt.show()

版本 3.4。 Matplotlib 提供了一種在 x 軸上顯示日期的便捷方式:

plt.rcParams['date.converter'] = 'concise'
plt.plot(df.date, df.total_cases, '.')
plt.tight_layout()
plt.show()

左:旋轉;右:rcParams date.converter

暫無
暫無

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

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