2016-04-06 9 views
0

Ich versuche, einen Hexbin mit zwei verschiedenen dimensionalen Arrays zu machen.Python - Plotten Dichte Kontur mit zwei verschiedenen dimensionalen Arrays

mass_msun = subhalos['SubhaloMass'] * 1e10/0.704 # in units of M_sol  h^-1 
lam = (subhalos['SubhaloSpin']) 

plt.plot(mass_msun,lam) 
plt.xscale('log') 
plt.yscale('log') 
plt.ylabel('$\lambda$') 
plt.xlabel('Subhalo Mass [$M_\odot$]') 

Das gibt mir eine nette Handlung als solche.

enter image description here

Was ich will, seine tun erstellen 2d Dichte Kontur von diesem Grundstück. Etwas ähnliches hier produziert: https://micropore.wordpress.com/2011/10/01/2d-density-plot-or-2d-histogram/

Problem ist, ich habe verschiedene dimensionale Arrays. Das lam Array hat eine Form (121209,3), während das mass_msun eine Form hat (121209,).

Gibt es eine Möglichkeit, die dimensionalen Aspekte von lam mit der mass_sun zu erhalten? Oder sollte ich einen anderen Befehl anders histogram2d verwenden?

Vielen Dank!

Antwort

0

Der einfachste Weg ist immer noch Ihre Daten neu zu gestalten, die Histogramm-Parameter Anforderungen passen:

n_col = lam.shape[1] 
H, xedges, yedges = np.histogram2d(np.tile(mass_msum, n_col), lam.flatten(), your_range, your_bins)