So erstellen Sie ein 3D-Streudiagramm mit SciPy (NumPy) und matplotlib in Python. Beispieldaten verwenden iris.csv (http://aima.cs.berkeley.edu/data/iris.csv)
Daten im + scipy.array-Format können wie ein gewöhnliches Array behandelt werden, und Datensätze, die die Bedingungen erfüllen, können leicht extrahiert werden, z. B. d [d [:, 0]> = 7]. Wenn Sie mehrere bedingte Ausdrücke verwenden, verketten Sie diese mit dem Bitoperator.
Sie können die Scatter3D-Methode beim Zeichnen eines Diagramms verwenden, sie wird jedoch extrem groß, wenn die Anzahl der Daten groß ist. Die Plotmethode ist besser. </ del>
(5/9 Nachschrift) Bei der Plotmethode werden die Plots in der Reihenfolge überschrieben, in der die Daten gelesen werden. Wenn sich die Plots überlappen, wird der dreidimensionale Kontext merkwürdig. Die Streumethode ist schwer und schwierig, den Graphen zu drehen, aber der dreidimensionale Kontext ist genauer. </ del>
(5/10 Nachschrift) Es war dasselbe mit Streuung, dass die dreidimensionale Überlappung seltsam war. Es sieht aus wie ein offenes Problem in matplotlib. Wenn Sie ein schönes 3D-Diagramm zeichnen möchten, können Sie MayaVi verwenden.
http://matplotlib.org/mpl_toolkits/mplot3d/faq.html
Sie können Farbe (Markierungsfarbe), ms (Markierungsgröße, Markierungsgröße), Miau (Markierungskantenbreite, Markierungsranddicke) usw. als Eigenschaften der Plotmethode angeben.
plot3d.py
# coding: UTF-8
from matplotlib import pyplot
from mpl_toolkits.mplot3d import Axes3D
from scipy import genfromtxt
#Datei lesen
d = genfromtxt("./temp/iris.csv", delimiter=",")
#Diagrammerstellung
fig = pyplot.figure()
ax = Axes3D(fig)
#Einstellungen für die Achsenbeschriftung
ax.set_xlabel("X-axis")
ax.set_ylabel("Y-axis")
ax.set_zlabel("Z-axis")
#Anzeigebereichseinstellung
ax.set_xlim(4, 8)
ax.set_ylim(2, 5)
ax.set_zlim(1, 8)
#Einstellung der Extraktionsbedingung
d1 = d[d[:,0] >= 7]
d2 = d[(d[:,0] < 7) & ((d[:,1] > 3) & (d[:,1] <= 3.5))]
d3 = d[(d[:,0] < 7) & ((d[:,1] <= 3) | (d[:,1] > 3.5))]
#Diagrammzeichnung
ax.plot(d1[:,0], d1[:,1], d1[:,2], "o", color="#cccccc", ms=4, mew=0.5)
ax.plot(d2[:,0], d2[:,1], d2[:,2], "o", color="#00cccc", ms=4, mew=0.5)
ax.plot(d3[:,0], d3[:,1], d3[:,2], "o", color="#ff0000", ms=4, mew=0.5)
pyplot.show()
Ein separates Fenster wird geöffnet und das Diagramm wird angezeigt. Das Diagramm kann durch Ziehen frei gedreht werden. Sie können die folgende PNG-Datei mit dem Speichersymbol in der Menüleiste ausgeben.
Recommended Posts