2013-10-25 72 views
1

我只是想問我怎麼能最好使用matplotlib創建一個頻率像素圖。通過這個學期我意味着什麼,如:Python matplotlib頻率像素圖

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

凡正方形的顏色代表了相應的時間和間隔的頻率。

我想繪製一系列的50個補丁,並根據數據和使用色階對它們進行着色?還是有更好的方法來做到這一點?

感謝

+1

你就不能使用的顏色表與適當的色標?還是你想讓軸線與圖中的相似? – Evert

回答

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() 

enter image description here

+0

謝謝!我確實看到了plt.hist2d,但我無法弄清楚如何使用它。我有一個簡單的問題,可以說我有相同的矩陣,但我有一些值爲0的缺失值,如何在繪圖時忽略這些值?例如,如果小時1現在爲[0,15,1,65,79],則左下角(0-10)矩形的顏色應與上面(10-20)的顏色相同。 –

+1

@JamesElder - 您可以將非零值傳遞給hist2d。例如。 'plt.hist2d(x [y!= 0],y [y!= 0],...)'。我可以添加一個更詳細的例子,如果它會幫助? –

+0

完美謝謝!今天我有點慢:P –