如何调节刻度图的数量?

How to regulate number of ticks plot?

我有一个形状为 (2000, 2) 的数据框。有两列:值和日期。我想在 x 轴上用日期绘制它。但是因为那里有 2000 天,我只想在 x 轴上保留 10 个刻度。我试过这个:

plt.plot(data["Date"], data["Value"])
plt.locator_params(axis='x', nbins=10)
plt.show()

但是剧情是这样的:

如何解决?

根据您的情节,我假设您的问题是您的“日期”列是字符串,而不是日期时间(或 pandas' 时间戳),因此 matplotlib 将其视为类别。如果它是类似日期时间的,matplotlib 会自动 select 一个有点合适的刻度间距:

您需要将这些字符串转换回日期时间,例如 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))