【问题标题】:How to change axis limits for time in Matplotlib?如何在 Matplotlib 中更改时间轴限制?
【发布时间】:2013-09-17 09:26:02
【问题描述】:

我有一个数据集存储在 Pandas 数据框对象中,数据框的第一列是datetime 类型,如下所示:

0    2013-09-09 10:35:42.640000
1    2013-09-09 10:35:42.660000
2    2013-09-09 10:35:42.680000
3    2013-09-09 10:35:42.700000

在另一列中,我还有另一列名为eventno,它看起来像:

0     0
1     0
2     0
3     0

我正在尝试使用 Matplotlib 创建散点图,一旦我准备好散点图,我想更改日期轴(x 轴)的范围以关注数据中的某些时间。我的问题是,我找不到改变数据将在 x 轴上绘制的范围的方法。我在下面尝试了这个,但我收到了 Not implemented for this type 错误。

plt.figure(figsize=(13,7), dpi=200)
ax.set_xlim(['2013-09-09 10:35:00','2013-09-09 10:36:00'])
scatter(df2['datetime'][df.eventno<11],df2['eventno'][df.eventno<11])

如果我注释掉 ax.set.xlim 行,我会得到散点图,但是有一些默认的 x 轴范围,甚至与我的日期不匹配。

我是否必须告诉 matplotlib 我的数据也是日期时间类型的?如果是这样,那我该怎么做?假设这部分以某种方式完成,那么如何更改要绘制的数据范围?

谢谢!

PS:我尝试上传图片,但出现“不允许取景”错误。哦,好吧...它只是从 1970 年 1 月 22 日到 1970 年 1 月 27 日绘制的。不知道它是如何得出的 :)

【问题讨论】:

  • 您的“日期时间”列的dtype 是什么? (如果您评估 df['datetime'],它应该会为您提供该信息)
  • 如果您将xlim 放在scatter 之后,这对我有用。所以我在 1970 年的绘图也没有问题。你用的是什么版本的熊猫?

标签: python matplotlib plot pandas


【解决方案1】:

尝试将ax.set_xlim 放在scatter 命令之后。

【讨论】:

  • 我使用axes.plot 并在plot 之后移动了set_xlim 以解决此问题
猜你喜欢
  • 2018-04-27
  • 1970-01-01
  • 2019-12-19
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 2017-10-13
相关资源
最近更新 更多