Il s'agit d'une formation pour devenir un data scientist en utilisant Python. Ici, nous allons faire Matplotlib, trois types de trésors sacrés de l'analyse des données Python.
J'ai pu exécuter Python jusqu'à présent, mais à partir de maintenant, j'utiliserai le notebook ipython.
** PREV ** → [Python] Road to the Serpent (4) Tweaking Numpy ** SUIVANT ** → [Python] Road to the Serpent (6) Manipulate Pandas
IPython Notebook IPython est un shell interactif plus puissant que le shell python. Le notebook IPython vous permet de le faire dans votre navigateur. Il est également recommandé pour les débutants en Python car vous pouvez exécuter, modifier et enregistrer du code avec l'interface graphique. De plus, comme il est lié aux principales bibliothèques telles que Matplotlib et Pandas, la sortie peut être intégrée sous forme d'image.
Vous pouvez le démarrer avec la commande suivante. Le notebook IPython est inclus avec Anaconda et devrait déjà être installé. Si le démarrage réussit, le navigateur démarre automatiquement.
Terminal
$ ipython notebook
Lorsque vous le démarrez, cela ressemble à ceci. Sélectionnez [Nouveau]> [Notebooks]> [Python] sur la droite pour créer un nouveau Notebook.
Une fois que vous avez ouvert le bloc-notes, vous pouvez écrire le code comme vous le souhaitez.
Vous pouvez également écrire un commentaire dans Markdown.
Vous pouvez le faire en appuyant sur la marque de lecture ci-dessus ou en appuyant sur shift + enter
.
Matplotlib
Tout d'abord, importez pyplot de mattplotlib en tant que plt. Il s'agit d'un style d'écriture standard.
% matplotlib inline
est requis pour afficher les graphiques matplotlib en ligne dans IPython Notebook.
import matplotlib.pyplot as plt
%matplotlib inline
Trouvons un graphique approprié pour le moment.
plt.plot([1, 3, 2, 4])
Vous pouvez l'afficher en ligne comme ceci.
Ensuite, j'écrirai sin wave et cos wave.
import numpy as np
from math import pi
#Génère un tableau divisé en 100 de 0 à 2π
x = np.linspace(1, 2*pi, 100)
y = np.sin(x)
plt.plot(x, y)
#Tracer des lignes de quadrillage
plt.grid()
#Dessiner une étiquette
plt.legend(['sin(x)'])
Si vous entrez % pylab
, numpy, matplotlib, etc. seront déjà importés.
%pylab
Pour dessiner plusieurs lignes, divisez-les comme plot (x1, y1); plot (x2, y2), ou tracez-les ensemble comme plot (x1, y1, x2, y2). Si x est commun, y peut utiliser np.array.
#0 à 1 0.Générer un tableau par incréments de 01
x = arange(0, 1, 0.01)
#Créez un tableau 2D en empilant trois tableaux 1D verticalement
a1 = vstack((x, x**2, x**3)); a1
#Transposer et dessiner
plot(x, a1.T)
grid()
legend('X X^2 X^3'.split(), loc='best')
Exportez la figure ci-dessus dans un fichier.
savefig('lines.png')
Vous pouvez également utiliser les commandes shell en ajoutant!
>>> !ls *.png
lines.png
Comme expliqué ci-dessus, Matplotlib peut être utilisé sans spécifier d'objets, mais il est préférable d'utiliser ces objets explicitement lors de l'exploitation de plusieurs graphiques et lignes.
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()
#Écrire l'étiquette de l'axe des x
xlabel('position')
#Écrire une étiquette sur l'axe des y
ylabel('density')
plot(x, y)
#Examiner la plage des axes définis automatiquement
xmin, xmax, ymin, ymax = gca().axis()
#Ajustez la plage de l'axe pour le rendre un peu plus facile à voir
xlim([xmin*0.5, xmax*0.5])
ylim([ymin-0.1, ymax+0.1])
grid()
xlabel('position')
ylabel('density')
Line style
Vous pouvez changer la couleur et la forme de la ligne.
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]
Graphe de dispersion aux coordonnées en quadrature
t = linspace(0, 2*pi, 1000) #angle
x = sin(3*t)
y = cos(5*t)
scatter(x, y, s=10) #s est la taille du point
Graphique en coordonnées polaires
r = sin(2*t)
polar(t, r)
z(x,y)=x^2+y^3
Dessinez des lignes de contour à code couleur.
x1 = y1 = linspace(-1, 1, 10)
x, y = meshgrid(x1, y1)
z = x**2 + y**3
n = linspace(-2, 2, 20) #Densité de contour
contourf(x, y, z, n) #L'axe z est représenté par la couleur
grid()
#Importer des modules pour la 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)
** SUIVANT ** → [Python] Road to the Serpent (6) Manipulate Pandas
Recommended Posts