【问题标题】:matplotlib pcolormesh creates data artifactsmatplotlib pcolormesh 创建数据工件
【发布时间】:2016-04-22 16:51:15
【问题描述】:

我正在使用matplotlib 函数pcolormeshimshow 绘制数据,当我使用pcolormesh 时,它会产生伪影,其中似乎会滑动一些数据:

imshow 没有:

我能够生成一个具有相同工件的示例

import numpy as np
import pandas as pd

data = pd.DataFrame({'x':np.random.normal(loc=0.5, size=5000)
                     , 'y':np.random.normal(loc=0.5, size=5000)
                     , 'z':np.random.normal(loc=0.5, size=5000)})

data_pivot = data.pivot(index='x', columns='y', values='z')
x = data_pivot.index.values
y = data_pivot.columns.values
z = data_pivot.values
masked_data = np.ma.masked_invalid(z)

产生如下数字:

fig, ax = plt.subplots(1, figsize=(8,8))
ax.pcolormesh(x, y, masked_data)

这些文物从何而来?据我所知,数据没有任何问题,因为原始数据和合成数据产生相同的结果。

【问题讨论】:

标签: python matplotlib


【解决方案1】:

答案是,我的数据形状不正确。 pcolormesh 期望输入数组具有正确数量的列和行,即使这些列和行充满了 NaN。因此,当它在数据中发现“间隙”时,它会用最后一个已知值填充它。工件不是工件,而是数据中的间隙。在我最初的示例中,我假设 imshow 是正确的,但实际上它并没有考虑到这些差距。

【讨论】:

  • 你是怎么解决的?有没有办法用选定的值填补空白?
猜你喜欢
  • 2014-12-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 2016-05-12
  • 1970-01-01
  • 1970-01-01
  • 2018-08-10
  • 1970-01-01
相关资源
最近更新 更多