Dies ist eine Ausbildung zum Datenwissenschaftler mit Python. Hier werden wir Matplotlib machen, drei Arten von heiligen Schätzen der Python-Datenanalyse.
Bisher konnte ich Python ausführen, aber von nun an werde ich das ipython-Notizbuch verwenden.
** PREV ** → [Python] Weg zur Schlange (4) Twumping Numpy ** WEITER ** → [Python] Weg zur Schlange (6) Pandas manipulieren
IPython Notebook IPython ist eine leistungsfähigere interaktive Shell als die Python-Shell. Mit dem IPython Notebook können Sie dies in Ihrem Browser tun. Es wird auch Python-Anfängern empfohlen, da Sie Code über die GUI ausführen, bearbeiten und speichern können. Da es mit wichtigen Bibliotheken wie Matplotlib und Pandas verknüpft ist, kann die Ausgabe außerdem als Bild eingebettet werden.
Sie können es mit dem folgenden Befehl starten. Das IPython Notebook ist in Anaconda enthalten und sollte bereits installiert sein. Wenn der Start erfolgreich ist, wird der Browser automatisch gestartet.
Terminal
$ ipython notebook
Wenn Sie es starten, sieht es so aus. Wählen Sie rechts [Neu]> [Notizbücher]> [Python], um ein neues Notizbuch zu erstellen.
Sobald Sie das Notizbuch geöffnet haben, können Sie den Code nach Belieben schreiben. Sie können auch einen Kommentar in Markdown schreiben. Sie können dies tun, indem Sie die Wiedergabemarke oben drücken oder "Shift + Enter" drücken.
Matplotlib
Importieren Sie zunächst den Pyplot von mattplotlib als plt. Dies ist ein Standardschreibstil.
% matplotlib inline ist erforderlich, um Matplotlib-Diagramme inline im IPython Notebook anzuzeigen.
import matplotlib.pyplot as plt
%matplotlib inline
Zeichnen wir vorerst ein passendes Diagramm.
plt.plot([1, 3, 2, 4])
Sie können es so inline anzeigen.
Als nächstes werde ich Sin Wave und Cos Wave schreiben.
import numpy as np
from math import pi
#Generieren Sie ein Array, das in 100 von 0 bis 2π unterteilt ist
x = np.linspace(1, 2*pi, 100)
y = np.sin(x)
plt.plot(x, y)
#Zeichnen Sie Gitterlinien
plt.grid()
#Etikett zeichnen
plt.legend(['sin(x)'])
Wenn Sie "% pylab" eingeben, werden numpy, matplotlib usw. bereits importiert.
%pylab
Um mehrere Linien zu zeichnen, teilen Sie sie wie Diagramm (x1, y1); Diagramm (x2, y2) oder zeichnen Sie sie wie Diagramm (x1, y1, x2, y2) zusammen. Wenn x gemeinsam ist, kann y np.array verwenden.
#0 bis 1 0.Generieren Sie ein Array in Schritten von 01
x = arange(0, 1, 0.01)
#Erstellen Sie ein 2D-Array, indem Sie drei 1D-Arrays vertikal stapeln
a1 = vstack((x, x**2, x**3)); a1
#Transponieren und zeichnen
plot(x, a1.T)
grid()
legend('X X^2 X^3'.split(), loc='best')
Geben Sie die obige Abbildung in eine Datei aus.
savefig('lines.png')
Sie können auch Shell-Befehle verwenden, indem Sie hinzufügen!
>>> !ls *.png
lines.png
Wie oben erläutert, kann Matplotlib ohne Angabe von Objekten verwendet werden. Wenn Sie jedoch mehrere Diagramme und Linien betreiben, ist es besser, diese Objekte explizit zu betreiben.
x = linspace(0, 2*pi, 100)
figure1 = gcf()
axis1 = gca()
line1, line2, = axis1.plot(x, sin(x), x, cos(x))
line3, = axis1.plot(x, sin(x)+cos(x))
axis1.legend([line1, line2, line3], ['sin', 'cos', 'sin+cos'])
x = linspace(-10, 10, 200)
y = exp(-x ** 2)
plot(x, y)
grid()
#Schreiben Sie eine x-Achsenbeschriftung
xlabel('position')
#Schreiben Sie eine Beschriftung der y-Achse
ylabel('density')
plot(x, y)
#Untersuchen Sie den Bereich der automatisch eingestellten Achsen
xmin, xmax, ymin, ymax = gca().axis()
#Passen Sie den Achsenbereich an, um die Sichtbarkeit zu verbessern
xlim([xmin*0.5, xmax*0.5])
ylim([ymin-0.1, ymax+0.1])
grid()
xlabel('position')
ylabel('density')
Line style
Sie können die Farbe und Form der Linie ändern.
from numpy.random import random
for i, style in enumerate(['r-o', 'g:x', 'b--^', 'm-.s']):
plot(random(10)+i, style)
left = np.array([1, 2, 3, 4, 5])
height1 = np.array([100, 200, 300, 400, 500])
height2 = np.array([1000, 800, 600, 400, 200])
p1 = plt.bar(left, height1, color="green")
p2 = plt.bar(left, height2, bottom=height1, color="orange")
a1 = random((4,10))
x = range(10)
colors = list('rgbm')
stackplot(x, a1, colors=colors)
bars=[bar([0], [0], color=color) for color in colors]
Streudiagramm an Quadraturkoordinaten
t = linspace(0, 2*pi, 1000) #Winkel
x = sin(3*t)
y = cos(5*t)
scatter(x, y, s=10) #s ist die Größe des Punktes
Grafik in Polarkoordinaten
r = sin(2*t)
polar(t, r)
z(x,y)=x^2+y^3
Zeichnen Sie farbcodierte Konturlinien.
x1 = y1 = linspace(-1, 1, 10)
x, y = meshgrid(x1, y1)
z = x**2 + y**3
n = linspace(-2, 2, 20) #Konturdichte
contourf(x, y, z, n) #Die z-Achse wird durch Farbe dargestellt
grid()
#Importieren Sie Module für 3D
from mpl_toolkits.mplot3d import Axes3D
figure1 = gcf()
axis1 = Axes3D(figure1)
x1 = y1 = linspace(-5, 5, 50)
x, y = meshgrid(x1, y1)
z = exp(-(x**2 + y**2))
axis1.plot_surface(x, y, z, rstride=1, cstride=2)
** WEITER ** → [Python] Weg zur Schlange (6) Pandas manipulieren
Recommended Posts