2016-08-02 3 views
0

에 대한 플롯 히트 맵은 내가 X 18904.파이썬 다음 제로가에 지배로 큰 매트릭스

대부분의 값이 제로이기 때문에 500, 나는 명확하게 패턴을 시각화 할 수 아니에요 크기의 대형 매트릭스를 컬러 바.

데이터를보다 자세히 보려면 ​​이미지의 여러 부분을 확대해야합니다. 컬러 바를 사용하여이 데이터를 시각화 할 수있는 확실한 방법이 있습니까?

여기 내 코드와 출력입니다.

import numpy as np 
import matplotlib.pyplot as plt 
import scipy.io as sio 
j = sio.loadmat('UV_matrix.mat') 
k = j['UV'] 
plt.imshow(k, aspect='auto') 
plt.show() 

내가 NumPy와 배열을 사용하여 두 가지 옵션이 생각할 수있는 출력 enter image description here

+0

0 이외의 값을 무시하고 0 이외의 값으로 정규화 할 수 있습니까? – Pedro

+0

히스토그램 균등화를 시도하십시오. http://scikit-image.org/docs/dev/auto_examples/plot_equalize.html –

+0

은 0을 무시합니다. 작은 검은 색 점 만 볼 수 있습니다. – Rangooski

답변

4

.

  1. 데이터가 대부분 0보다 높은 가정하지만 제로의 많은 :

    vmin = some_value_higher_than_zero 
    plt.matshow(k,aspect='auto',vmin=vmin) 
    
  2. NaN을 모든 0을 설정이 있습니다. 그들은 자동으로 빠져 나옵니다.

    k[k==0.0]=np.nan 
    plt.matshow(k,aspect='auto') 
    

NB. imshow와 matshow 모두 여기에서 작동합니다.

매트릭스가 실제로 희박한 또 다른 옵션은 산점도를 사용하는 것입니다.

x,y = k.nonzero() 
plt.scatter(x,y,s=100,c=k[x,y]) #color as the values in k matrix