[Python] Road to the Serpent (5) Jouez avec Matplotlib

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. f0ee9d36d4f62936bfc61e7bb14747ad.png

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. 2c0f791bbadaebc727640eea69f67acb.png

Matplotlib

Comment dessiner un graphique

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])

output_4_1.png

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)'])

output_7_1.png

Plusieurs lignes

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')

output_12_1.png

Sortie dans un fichier

Exportez la figure ci-dessus dans un fichier.

savefig('lines.png')

Vous pouvez également utiliser les commandes shell en ajoutant!

>>> !ls *.png
lines.png

Méthode explicite d'objet

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'])

output_20_1.png

Paramètres de l'axe

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')

output_22_1.png

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')

output_23_1.png

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)

output_26_0.png

graphique à barres

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")

output_28_0.png

Graphique empilé

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]

output_30_0.png

Nuage de points

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

output_33_1.png

Graphique en coordonnées polaires

r = sin(2*t)
polar(t, r)

output_35_1.png

contour

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()

output_38_0.png

Graphique 3D

#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)

output_40_1.png

** SUIVANT ** → [Python] Road to the Serpent (6) Manipulate Pandas

Recommended Posts

[Python] Road to the Serpent (5) Jouez avec Matplotlib
[Python] La route du serpent (4) Numpy
[Python] La route du serpent (6) Manipuler les pandas
[Python] Road to the Serpent (3) Classe Python
[Python] Road to snakes (1) Construction de l'environnement
Une route vers Python intermédiaire
[Python] Comment dessiner un graphique linéaire avec Matplotlib
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
[Road to Intermediate Python] Appelez une instance de classe comme une fonction avec __call__
Fractal pour faire et jouer avec Python
Je veux jouer avec aws avec python
[ROS2] Comment lire un fichier bag avec le lancement au format python
La route de la compilation vers Python 3 avec Thrift
Comment lire un fichier CSV avec Python 2/3
Envoyer un message à LINE avec Python (LINE Notify)
[REAPER] Comment jouer à Reascript avec Python
Essayez de dessiner une courbe de vie avec python
[Python] Comment dessiner plusieurs graphiques avec Matplotlib
Je veux faire un jeu avec Python
Décidez d'une mission de laboratoire avec Python (fiction)
Étapes pour créer un bot Twitter avec Python
[Python] Comment dessiner un histogramme avec Matplotlib
Je veux écrire dans un fichier avec Python
Visualiser grib2 sur une carte avec python (matplotlib)
Carte thermique par Python + matplotlib
[Python] A créé une classe pour jouer des vagues de péché en arrière-plan avec pyaudio
Comment convertir / restaurer une chaîne avec [] en python
Mémo connecté à HiveServer2 d'EMR avec python
Faisons un outil de veille de commande avec python
Python Ver. Présentation de WebPay avec un peu de code
[Jouons avec Python] Créer un livre de comptes de ménage
De l'achat d'un ordinateur à l'exécution d'un programme sur python
[Python] Un mémo pour écrire du CSV verticalement avec Pandas
Je souhaite créer manuellement une légende avec matplotlib
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
Je veux faire fonctionner un ordinateur quantique avec Python
La route pour télécharger Matplotlib
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
[Python] Jouez avec le Webhook de Discord.
Faites une loterie avec Python
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Comment installer NPI + envoyer un message à la ligne avec python
[Road to Intermediate Python] Installer des packages en masse avec pip
Comment convertir un tableau en dictionnaire avec Python [Application]
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
J'ai créé un package pour filtrer les séries chronologiques avec python
Une collection de techniques professionnelles compétitives à résoudre avec Python
Probablement le moyen le plus simple de créer un pdf avec Python 3
[Python] Comment jouer avec les variables de classe avec décorateur et métaclasse
Expérimentez pour créer un PDF indépendant pour Kindle avec Python
Essayez d'ouvrir une sous-fenêtre avec PyQt5 et Python
[Jouons avec Python] Traitement d'image en monochrome et points
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
[Road to Intermediate Python] Permet des opérations de comparaison pour des classes uniques
Créer un message correspondant à la localisation avec la chaîne de traduction python