我有一個形狀為 (2000, 2) 的資料框。有兩列:值和日期。我想用 x 軸上的日期繪制它。但由于那里有 2000 天,我只想在 x 軸上保留 10 個刻度。我試過這個:
plt.plot(data["Date"], data["Value"])
plt.locator_params(axis='x', nbins=10)
plt.show()
但情節是這樣的:

如何解決?
uj5u.com熱心網友回復:
根據您的情節,我將假設您的問題是您的“日期”列是字串,而不是日期時間(或熊貓的時間戳),因此 matplotlib 將其視為類別。如果它是類似日期時間的,matplotlib 會自動選擇一個有點合適的刻度間距:

您需要將這些字串轉換回日期時間,例如使用 dateutil.parser
from dateutil import parser
data['Date_dt'] = data['Date'].apply(parser.parse)
或通過 strptime ( args 中的格式字串可能會根據您的日期格式而改變)
from datetime import datetime
data['Date_dt'] = data['Date_str'].apply(datetime.strptime, args=['%Y-%m-%d %H:%M:%S'])
如果出于某種晦澀的原因,您真的只想要 10 個滴答聲,您可以執行以下操作:
plt.xticks(pd.date_range(data['Date'].min(), data['Date'].max(), periods=10))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/394381.html
標籤:Python 蟒蛇-3.x matplotlib 阴谋
上一篇:Selenium無資料輸出
下一篇:在同一軸和繪圖上繪制模型
