【发布时间】:2020-11-17 03:39:05
【问题描述】:
我有一个使用 matplotlib 和数据框绘制的二维图。
我在这个问题中遵循了公认的答案:How to change pyplot background colour in region of interest?
在我最后一次 Arch Linux 更新之前,我的代码一直按预期工作。 从那时起,我的代码不再工作,我收到以下错误:
[1493 rows x 5 columns]
Traceback (most recent call last):
File "eco.py", line 148, in _show_alert
ax.pcolor(df.index, ax.get_ylim(),df['alert'].values[np.newaxis])
File "/usr/lib/python3.8/site-packages/matplotlib/__init__.py", line 1447, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
File "/usr/lib/python3.8/site-packages/matplotlib/axes/_axes.py", line 5821, in pcolor
X, Y, C, shading = self._pcolorargs('pcolor', *args, shading=shading,
File "/usr/lib/python3.8/site-packages/matplotlib/axes/_axes.py", line 5590, in _pcolorargs
Nx = X.shape[-1]
AttributeError: 'list' object has no attribute 'shape'
代码:
cmap = ListedColormap(['white','red'])
ax.pcolor(df.index, ax.get_ylim(),df['alert'].values[np.newaxis],
cmap=cmap, alpha=0.5, linewidth=1, antialiased=True)
其中 df 是 pandas 的数据框实例,df.index 时间戳索引和 df['alert'] 值可以是 0 或 1(因此我可以在 alert=1 时映射红色)。 预期的最终结果是具有白色背景或红色背景的二维图形 (df['val']),具体取决于 df['alert']。
我做错了什么? 如果它以前有效,我很幸运吗? API是否改变了?如果是这样,我怎么会知道这种东西?
【问题讨论】:
标签: python pandas matplotlib