首页 > 解决方案 > 使用重采样数据和宽度 = 1 绘制条形图以及如何避免“将整数和整数数组加/减到时间戳”?

问题描述

尝试使用重采样数据绘制条形图时出现以下错误错误:

FutureWarning: Addition/subtraction of integers and integer-arrays to Timestamp is deprecated, will be removed in a future version.  Instead of adding/subtracting `n`, use `n * self.freq`
  dx = [convert(x0 + ddx) - x for ddx in dx]

我的代码:

plt.bar(df.index, df.tally, width=1)
plt.show()

这将按预期返回图形,但带有FutureWarning.

按预期绘制width=1返回图但出现错误

df是重新采样的数据,如下所示。无论我使用每周、每月、每季度还是每年都会发生这种情况,并且我假设任何频率。

日期统计
2015-01-31 7
2015-02-28 4
2015-03-31 2
2015-04-30 2

删除width=1会消除错误,但会返回一个无用的条形图,其中包含几乎不可见的细白线。

width=1没有返回细白线的绘图

我相信,该图看起来像这样,因为数据仅在每个月的一天或任何频率上绘制。因此,这些记录在具有 5 年数据点的轴上很小 - 对于散点图来说不是问题。

我不明白为什么我会收到错误。我在哪里将整数添加到时间戳?

也许有更好的方法将重采样数据绘制为时间序列。

标签: pythonmatplotliberror-handling

解决方案


推荐阅读