【问题标题】:Python matplotlib frequency pixel map [duplicate]Python matplotlib频率像素图[重复]
【发布时间】:2013-11-04 12:31:22
【问题描述】:

我只是想问我如何最好地使用 matplotlib 创建频率像素图。我所说的这个词的意思是:

http://img513.imageshack.us/img513/8677/g8df.png

其中方块的颜色代表相应小时和间隔的频率。

我正在考虑绘制一系列 50 个色块并根据数据和使用色标对它们进行着色?或者有更好的方法吗?

谢谢

【问题讨论】:

  • 您不能只使用具有适当色标的颜色图吗?还是您希望轴与图中相似?

标签: python matplotlib histogram


【解决方案1】:

听起来你基本上只想要plt.hist2d

import numpy as np
import matplotlib.pyplot as plt

data = np.array([[8,  15,  1, 65, 79],
                 [45, 22, 60, 43, 16],
                 [3,  75, 90, 11, 14],
                 [89, 32, 27, 59, 99],
                 [62,  5, 54, 92, 81]])
nrows, ncols = data.shape
# Generate 1-based row indicies, similar to your table
row = np.vstack(ncols * [np.arange(nrows) + 1]).T

x, y = row.flatten(), data.flatten()

xbins = np.arange(nrows+1) + 0.5
plt.hist2d(x, y, bins=(xbins, 10), cmap=plt.cm.Reds)
plt.show()

【讨论】:

  • 谢谢!我确实看到了 plt.hist2d 但我不知道如何使用它。我有一个简单的问题,假设我有相同的矩阵,但我有一些由值 0 表示的缺失值,我如何在绘图时忽略这些值?例如,如果第 1 小时现在是 [0, 15, 1, 65, 79],那么左下角 (0-10) 矩形的颜色应该与上面的矩形 (10-20) 相同。
  • @JamesElder - 您可以将非零值传递给 hist2d。例如。 plt.hist2d(x[y != 0], y[y != 0], ...)。如果有帮助,我可以添加一个更详细的示例?
  • 完美谢谢!我今天有点慢:P
猜你喜欢
  • 2020-09-22
  • 2019-12-19
  • 2020-09-03
  • 2016-12-05
  • 2013-11-21
  • 2011-08-14
  • 2016-08-06
  • 1970-01-01
  • 2017-03-01
相关资源
最近更新 更多