2017-12-20 26 views
1

Nehmen wir an wir haben x, y Koordinaten als Eingabe wo x ist im Bereich (0,300) & y ist im Bereich (0,400) Ich möchte Zeichnen Sie alle diese Koordinaten als Heatmap in einem rechteckigen Raster mit einer Breite zwischen (0,300) & Höhe zwischen (0,400).Heatmap in Python zur Darstellung von (x, y) Koordinaten in einem gegebenen rechteckigen Bereich

Mit Seaborn, oder Matplotlib, kann ich ein Streudiagramm plotten, aber ich habe Mühe, diese Punkte als Heatmap darzustellen.

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

Wenn also meine Probengrße 5000 Punkte sind & alle sind fast im Bereich von x als (0,50) & y als (0,50), um sie in einem rechteckigen Raum von 300x400 repräsentiert die zeigen soll höchste Dichte an Koordinaten im 50x50 Raum.

Kann mir bitte jemand sagen, wie man diese Daten darstellt?

Zum Testen & Plotting auf Streudiagramm habe ich seamorn's lmplot Funktion verwendet.

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

Suchen Sie ein 2D-Histogramm? – ImportanceOfBeingErnest

+0

Ja, aber ich konnte die Daten nicht korrekt mit np.histogram2d darstellen, können Sie mir dabei helfen? – rishabh

+0

Hilft das? https://stackoverflow.com/questions/33282368/plotting-a-2d-heatmap-with-matplotlib – Omni

Antwort

1

Es scheint, dass hier ein 2-dimensionales Histogramm gewünscht ist. Dies kann mit plt.hist2d geplottet werden.

Beispiel:

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

Danke, die bin-Bereiche geholfen, es richtig zu planen! – rishabh

Verwandte Themen