J'oublie souvent les détails lorsque je dessine des graphiques avec IPython et matplotlib, alors je les ai résumés. Je parle de quel numéro il s'agit, mais j'espère que vous le trouverez utile.
Si vous créez 00_import.py etc. sous ~ / .ipython / profile_default / startup / Il sera exécuté automatiquement au démarrage d'IPython.
00_import.py
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import re
N'est-ce pas l'endroit que vous utilisez souvent?
sample_1.py
x = np.arange(-10, 10, 0.1)
y = x**3
plt.figure(figsize=(6, 4)) # set aspect by width, height
plt.xlim(min(x), max(x))
plt.ylim(min(y), max(y)) # set range of x, y
plt.xticks(np.arange(min(x), max(x)+2, 2))
plt.yticks(np.arange(min(y), max(y)+200, 200)) # set frequency of ticks
plt.plot(x, y, color=(0, 1, 1), label='y=x**3') # color can be set by (r, g, b) or text such as 'green'
plt.hlines(0, min(x), max(x), linestyle='dashed', linewidth=0.5) # horizontal line
plt.vlines(0, min(y), max(y), linestyle='dashed', linewidth=0.5) # vertical line
plt.legend(loc='upper left') # location can be upper/lower/center/(none) and right/left/(none)
plt.title('Sample 1')
plt.show()
J'en ai souvent besoin, mais je l'ai oublié à chaque fois ... Lors de la manipulation d'un objet ax, le nom de la méthode change un peu par rapport à plt. Untara (set_ est requis). Le lien ci-dessous est facile à comprendre concernant la relation entre l'objet figure et l'objet axes. http://ailaby.com/matplotlib_fig/
sample_2.py
# just prepare data
x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
y2 = x
fig, ax = plt.subplots(figsize=(5,5)) # create figure and axes object
ax.plot(x, y1, label='sin(x)', color='red') # plot with 1st axes
ax.set_ylabel('y=sin(x)') # set label name which will be shown outside of graph
ax.set_yticks(np.arange(-1, 1+0.2, 0.2))
ax2 = ax.twinx() # create 2nd axes by twinx()!
ax2.set_ylabel('y=x')
ax2.plot(x, y2, label='x', color='blue') # plot with 2nd axes
ax.set_xlim(0, 5) # set range
ax.legend(loc='upper left')
ax2.legend(loc='upper right')
plt.title('Sample 2')
plt.show()
Personnellement, j'annote souvent chaque point du nuage de points avec un nombre ou un score, alors je le mets.
sample_3.py
pos_x = [1.0, 1.5, 2.1, 2.7, 3.0] # x of positions
pos_y = [0.7, 0.9, 1.0, 1.3, 1.5] # y of positions
time = [1, 2, 3, 4, 5] # time of each positions
# draw points
plt.scatter(pos_x, pos_y, color='red', label='Position')
# annotate each points
for i, t in enumerate(time):
msg = 't=' + str(t)
plt.annotate(msg, (pos_x[i], pos_y[i])) # x,y need brackets
plt.title('Sample 3')
plt.legend(loc='upper left')
plt.show()
C'est tout. Je l'ajouterai à nouveau si je le propose à l'avenir. Eh bien.
Recommended Posts