오른쪽에서 나는 1000 개의 행렬의 고유 값 스펙트럼이 서로에 대해 플롯되어 있습니다. 왼쪽에서 나는 고유치가 발생하는 빈도와 빈도를 히스토그램 또는 밀도 함수로 얻고 싶었습니다.numpy의 histogram2d 및 colormaps와 관련된 문제
은 히스토그램은 NumPy와 함께 이루어집니다 :
bins = 200
d = max(max(re), max(im), -min(re), -min(im))
histogram2D, binsX, binsY = np.histogram2d(re, im, bins=bins, range=((-d,d),(-d,d)))
histogram2D = histogram2D.T
또한 각각의 빈에서 고유의 양에 고유 값이 발생한 장소를 내가 분명히 보여 여전히 히스토그램을 원하고 그들이하지 않았다 곳. 그래서 난 내 자신의 컬러 맵 제작 :
def redblue_zeta(Zmin, Zmax, zeta=0.0):
breakingpoint = float(Zmin)+float(zeta)/(float(Zmax)-float(Zmin))
cdict = {'red': ((0.0, 1.0, 1.0), (breakingpoint, 1.0, 0.0), (1.0, 1.0, 1.0)),
'green': ((0.0, 1.0, 1.0), (breakingpoint, 1.0, 0.0), (1.0, 0.0, 0.0)),
'blue': ((0.0, 1.0, 1.0), (breakingpoint, 1.0, 1.0), (1.0, 0.0, 0.0))}
return(cdict)
(. 내가 다른 플롯에 대한지도 제타> 0 aswell를 사용하기 때문에이 조금 더 복잡하다)을 그리고 나는 플롯 : 그래서
Zmax = histogram2D.max()
cdict=cc.redblue_zeta(0,Zmax,zeta=0.0)
plt.register_cmap(name='rb', data=cdict)
plt.imshow(histogram2D, cmap=cm.get_cmap('rb'), extent=[-d, d, -d, d], interpolation='nearest')
2D 플롯의 점은 해당 빈에 정확히 0 개의 고유 값이있는 경우 흰색으로 간주됩니다. 그렇지 않으면 그것은 청색과 적색 사이의 어떤 것으로되어 있습니다. 그러나 그것은 내가 얻는 것이 아닙니다. 히스토그램 플롯에서 너무 작은 파란색 영역을 얻으므로 막대 그래프 또는 색상 맵 중 작은 값이 0으로 반올림되는 것으로 보입니다. 어떤 아이디어? 감사.