Ho un problema con la funzione di contouring di matplotlib. Ho un file di dati txt da cui sto importando i miei dati. Ho colonne di dati (pm1 e pm2) e sto eseguendo un istogramma 2D. Voglio tracciare questi dati come un istogramma 3D e come grafico di contorno per vedere dove si trovano i valori massimi.Istogrammi 3D e contorni di contorno Python
Questo è il mio codice:
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
rows = np.arange(200,1300,10)
hist, xedges, yedges = np.histogram2d (pm1_n, pm2_n, bins = (rows, rows))
elements = (len(xedges) - 1) * (len(yedges) - 1)
xpos, ypos = np.meshgrid(xedges[:-1], yedges[:-1])
xpos = xpos.flatten()
ypos = ypos.flatten()
zpos = np.zeros(elements)
dx = 0.1 * np.ones_like(zpos)
dy = dx.copy()
dz = hist.flatten()
#####The problem is here#####
#ax.contourf(xpos,ypos,hist)
#ax.bar3d(xpos, ypos, zpos, dx, dy, dz, zsort='average')
plt.show()
posso tracciare il grafico a barre 3D, ma io non sono in grado di tracciare il contorno uno, se metto hist
nella funzione contourf ottengo l'errore: Length of x must be number of columns in z
e se Inserisco dz
Ottengo Input z must be a 2D array
Ho anche provato a usare xedges e yexges ma questo non risolve il problema.
Penso che il problema sia correlato alla forma del ritorno dell'istogramma funzione2D. Ma non so come risolverlo.
Vorrei anche eseguire un grafico a barre 3D con un codice colore che cambia dal valore minimo al valore massimo. C'è comunque da fare questo?
Grazie
Riferimenti alle linee di personalizzazione colorbar: [esempio pylab] (http://matplotlib.org/examples/pylab_examples/hist_colormapped.html) e [questo post] (http://stackoverflow.com/questions/11950375/apply -color-map-to-MPL-toolkit-mplot3d-axes3d-bar3d) – lanery