【问题标题】:How to regulate number of ticks plot?如何调节刻度图的数量?
【发布时间】:2022-01-26 01:41:26
【问题描述】:

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

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

但情节是这样的:

如何解决?

【问题讨论】:

    标签: python python-3.x matplotlib plot


    【解决方案1】:

    根据您的情节,我将假设您的问题是您的“日期”列是字符串,而不是日期时间(或熊猫的时间戳),因此 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))
    

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      • 2021-11-11
      • 2022-01-02
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多