Gibt es eine einfache Möglichkeit, 2D-Daten mit Mitteln der Pixelintensität entlang der X-und Y-Achsen an den Seiten des Bildes zu plotten? ähnlich wie Seaborns jointplot
(doc) aber mit einem 2D-Numpy-Array als Eingabe? Oder kann das numpy Array leicht in eine Form umgewandelt werden, die Scatterploted sein kann?mittlere Projektionen entlang Bild-Array-Achsen in Python
Eine hässliche Problemumgehung wäre die folgende, wo ich das Bild in x- und y-Koordinaten umwandele. Dann kann ich jointplot
verwenden, aber die Bildausgabe ist ziemlich hässlich.
img=#some 2d image data
xx=np.zeros(img.sum())
yy=np.zeros(img.sum())
i=0
for x in range(img.shape[0]):
for y in range(img.shape[1]):
for c in range(img[x,y]):
xx[i]=x
yy[i]=y
i+=1
import seaborn as sns
sns.jointplot(yy,xx)
Es ist nicht klar, was Sie erwarten von ein Histogramm der Pixelintensität entlang der x- oder y-Achse. Können Sie das näher ausführen? – kazemakase
Ich fand eine ziemlich gute Lösung hier: http://stackoverflow.com/questions/20525983/matplotlib-imshow-a-2d-array-with-plots-of-its-marginal-densities – jlarsch
nicht ganz so glatt wie Seaborn aber ein guter Anfang – jlarsch