Mam problem z funkcją contourf funkcji matplotlib. Mam plik danych txt, z którego importuję moje dane. Mam kolumny danych (pm1 i pm2) i wykonuję histogram 2D. Chcę wykreślić te dane jako histogram 3D i jako wykres konturu, aby zobaczyć, gdzie znajdują się wartości maksymalne.Histogramy 3D i wykresy konturowe Python
To jest mój kod:
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()
mogę wykreślić 3d wykres słupkowy, ale nie jestem w stanie wykreślić kontur jedna, I miejsce hist
w funkcji contourf pojawia się błąd: Length of x must be number of columns in z
i jeśli Umieszczam dz
Dostaję Input z must be a 2D array
Próbowałem również używać xedges i yexges, ale to nie rozwiązuje problemu.
Myślę, że problem jest związany z kształtem powrotu funkcji histogram2D. Ale nie wiem jak to rozwiązać.
Chciałbym również wykonać wykres słupkowy 3D z kodem zmieniającym kolor od minimalnej do maksymalnej wartości. Czy tak jest, aby to zrobić?
Dziękuję
Odwołania do linii dostosowania paska kolorów: [przykład pirlaba] (http://matplotlib.org/examples/pylab_examples/hist_colormapped.html) i [ten post] (http://stackoverflow.com/questions/11950375/apply -color-map-to-mpl-toolkits-mplot3d-axes3d-bar3d) – lanery