2017-12-20 2 views
1

x가 범위 (0,300) &에있는 입력으로 x, y 좌표를 갖는다 고 가정 해 봅니다. y가 범위 내에 있습니다 (0,400) 하고 싶습니다. 이 모든 좌표를 (0,300) & 높이 (0,400) 사이의 너비의 사각형 격자에서 히트 맵으로 그립니다.주어진 사각형 영역에서 (x, y) 좌표를 표현하는 파이썬 히트 맵

seaborn 또는 matplotlib를 사용하여 산점도를 플로팅 할 수 있지만 이러한 점을 히트 맵으로 표시하는 데 어려움이 있습니다. 내 샘플 크기가 5000 점 & 인 경우

x = numpy.random.randint(0, high=50, size=5000, dtype='l') 
y = numpy.random.randint(0, high=50, size=5000, dtype='l') 

따라서 모두를 입증해야가 300x400의 사각형 공간에서 이들을 표현 (0,50) 등 (0,50) & 예로서 x의 범위에서 거의 아르 50x50 공간에서 가장 높은 좌표 밀도.

이 데이터를 어떻게 표현할 수 있습니까?

스 캐터 플롯에서 플로팅하는 & 테스트의 경우 해저의 lmplot 기능을 사용했습니다.

df = pd.DataFrame() 

df['x'] = pd.Series(numpy.random.randint(0, high=320, size=5000, dtype='l')) 
df['y'] = pd.Series(numpy.random.randint(0, high=480, size=5000, dtype='l')) 
sns.set_style('whitegrid') 
sns.lmplot('x','y',data=df, 
     palette='coolwarm',size=10,fit_reg=False) 
plt.show() 
+0

당신은 2D 히스토그램을 찾고 계십니까? – ImportanceOfBeingErnest

+0

예,하지만 np.histogram2d를 사용하여 데이터를 올바르게 나타내지 못했습니다.이 문제를 해결할 수 있습니까? – rishabh

+0

이 정보가 도움이됩니까? https://stackoverflow.com/questions/33282368/plotting-a-2d-heatmap-with-matplotlib – Omni

답변

1

여기서 원하는 것은 2 차원 히스토그램입니다. 이것은 plt.hist2d을 사용하여 플롯 할 수 있습니다.

예 :

import numpy as np 
import matplotlib.pyplot as plt 

x = np.random.rayleigh(50, size=5000) 
y = np.random.rayleigh(50, size=5000) 


plt.hist2d(x,y, bins=[np.arange(0,400,5),np.arange(0,300,5)]) 

plt.show() 

enter image description here

+0

고맙습니다. bin 범위가 올바르게 그려졌습니다! – rishabh