2013-10-25 2 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에 0이 아닌 값을 전달하면됩니다. 예 : 'plt.hist2d (x [y! = 0], y [y! = 0], ...)'. 도움이된다면 좀 더 자세한 예제를 추가 할 수 있습니까? –

+0

고마워요! 나는 오늘 조금 천천히한다. P –