2016-05-04 6 views
1

Ich versuche, eine SOM (selbstorganisierende Karte) in Anaconda 2 zu implementieren, und mein Betriebssystem ist Windows 10. Nach Gießen Iris-Datensatz in, ich habe ein Array wie folgend:Wie man ein Flächendiagramm aus einem Array von Frequenz plotten

matrix([[ 3., 6., 4., 0., 10.], 
    [ 1., 9., 4., 18., 13.], 
    [ 5., 6., 4., 1., 0.], 
    [ 5., 5., 6., 3., 3.], 
    [ 19., 9., 6., 5., 5.]]) 

und ich möchte, um ein Diagramm zeichnen wie folgt aussieht:

Graph

ich jede mögliche Weise versucht haben, die ich finden kann, kann man mich sprechen, wie es zu tun.

Antwort

0

Versuchen Sie dieses, das von http://matplotlib.org/examples/mplot3d/surface3d_demo.html abgeleitet:

from mpl_toolkits.mplot3d import Axes3D 
from matplotlib import cm 
from matplotlib.ticker import LinearLocator, FormatStrFormatter 
import matplotlib.pyplot as plt 
import numpy as np 

fig = plt.figure() 
ax = fig.gca(projection='3d') 
X = np.arange(0, 5) 
Y = np.arange(0, 5) 
X, Y = np.meshgrid(X, Y) 
Z = [[ 3., 6., 4., 0., 10.], 
    [ 1., 9., 4., 18., 13.], 
    [ 5., 6., 4., 1., 0.], 
    [ 5., 5., 6., 3., 3.], 
    [ 19., 9., 6., 5., 5.]] 

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, 
         linewidth=0, antialiased=False) 
ax.set_zlim(0, 20) 

ax.zaxis.set_major_locator(LinearLocator(10)) 
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) 

fig.colorbar(surf, shrink=0.5, aspect=5) 

plt.show() 

enter image description here

+0

Es funktioniert! Vielen Dank! – Nia

+0

@ Nia: Gern geschehen. Wenn Lösungen funktionieren, können Sie die Antwort aktualisieren oder annehmen. Dies ist eine Möglichkeit anderen zu zeigen, dass die Antwort hilfreich ist und dem Autor dafür zu danken, dass er seine Zeit verbracht hat. Vielleicht möchten Sie hier einen kurzen Blick darauf werfen, wie es weitergeht, wenn eine Antwort funktioniert: http://stackoverflow.com/help/someone-answers Obwohl es höflich ist, dies im normalen Leben zu tun, ist "Danke" in Kommentaren nicht wirklich ermutigt. – tfv