Comment utiliser Matplotlib pour afficher des histogrammes et des diagrammes de dispersion sur Jupyter Notebook.
Le contenu de cet article est testé dans l'environnement Jupyter Notebook préparé conformément à l'article suivant. Installation et démarrage faciles de Jupyter Notebook à l'aide de Docker (prend également en charge nbextensions et Scala) --Qiita
Dans cet environnement, vous pouvez accéder au port 8888 avec un navigateur et utiliser Jupyter Notebook. Vous pouvez ouvrir une nouvelle note en suivant Nouveau> Python 3 sur le bouton en haut à droite.
Consultez l'article suivant pour les histogrammes et les diagrammes de dispersion. Afficher l'histogramme / diagramme de dispersion sur Jupyter Notebook - Qiita
Nous avons préparé deux exemples de données en supposant que la première colonne est le x et la deuxième colonne est l'axe des y.
test1.csv
0,100
1,110
2,108
4,120
6,124
test2.csv
0,90
1,95
2,99
3,104
4,108
5,111
6,115
Ouvrez Jupyter Notebook et importez diverses choses.
%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
Lisez les données.
df1 = pd.read_csv("test1.csv", names=["x", "y"])
df2 = pd.read_csv("test2.csv", names=["x", "y"])
df
sera un objet de Pandas DataFrame.
Voir l'article précédent sur la lecture à partir de CSV et la gestion de DataFrame. Essayez les opérations de base pour DataFrame-Qiita
plt.plot(df1["x"], df1["y"])
df1 [" x "]
et df1 [" y "]
sont des objets de la série Pandas qui peuvent être passés à plt.plot
.
matplotlib.pyplot.plot — Matplotlib 3.1.1 documentation
Vous pouvez également superposer deux graphiques.
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(df1["x"], df1["y"])
ax1.plot(df2["x"], df2["y"])
y = x^2 + 3x + 80
Dessinons un graphique de la fonction.
x3 = np.linspace(0, 6, 13)
y3 = x3 * x3 + 3.0 * x3 + 80.0
plt.plot(x3, y3)
np.linspace (0, 6, 7)
est un tableau appelé ndarray de NumPy avec les éléments 0, 0,5, 1, 1,5, 2, 2,5, 3, 3,5, 4, 4,5, 5, 5,5, 6
revenir. Il s'agit d'un tableau dans lequel un total de 13 nombres sont répartis uniformément avec 0 et 6 aux deux extrémités.
numpy.linspace — NumPy v1.17 Manual
Si vous appliquez quatre règles à ndarray, ce sera ndarray avec le même nombre d'éléments, donc x3 * x3 + 3.0 * x3 + 80.0
sera également ndarray contenant 7 nombres.
Si vous mettez x et y dans un tableau et que vous le passez à plt.plot
, vous pouvez créer un graphique de la même manière que les données CSV. J'ai passé la série Pandas à plt.plot
plus tôt, mais il semble que je puisse aussi passer le ndarray NumPy.
Il peut également être affiché en superposition avec les données du fichier CSV.
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(df1["x"], df1["y"])
ax1.plot(df2["x"], df2["y"])
ax1.plot(x3, y3)
Vous pouvez spécifier la forme d'un point dans les données en passant l'argument «marker» à «plot».
x3 = np.linspace(0, 6, 13)
y3 = x3 * x3 + 3.0 * x3 + 80.0
plt.plot(x3, y3, marker=".")
x3 = np.linspace(0, 6, 13)
y3 = x3 * x3 + 3.0 * x3 + 80.0
plt.plot(x3, y3, marker="o")
Reportez-vous à la référence suivante pour les chaînes de caractères pouvant être spécifiées pour marker
.
matplotlib.markers — Matplotlib 3.1.1 documentation
Vous pouvez spécifier la largeur de destination avec l'argument «linewidth». Si 0 est spécifié, il n'y aura pas de ligne.
x3 = np.linspace(0, 6, 13)
y3 = x3 * x3 + 3.0 * x3 + 80.0
plt.plot(x3, y3, marker="o", linewidth=0)
D'autres options sont également répertoriées dans les références ci-dessous. matplotlib.pyplot.plot — Matplotlib 3.1.1 documentation
c'est tout.
Recommended Posts