Introducción a Matplotlib
Importar las librerías
| import matplotlib.pyplot as plt
import numpy as np
|
Representar una lista
| plt.plot([1, 0, 4, 2])
plt.show()
|
Representar valores x vs y
| plt.plot([-3, -2, 5, 0], [1, 6, 4, 3])
plt.show()
|
Representar una función
| x = np.linspace(-2, 2, 500)
y = x**2
plt.plot(x, y)
plt.show()
|
Tamaño de los ejes
Llamamos al método axis pasándole los valores [xmin, xmax, ymin, ymax]
| plt.plot([-3, -2, 5, 0], [1, 6, 4, 3])
plt.axis([-4, 6, 0, 7])
plt.show()
|
Título y etiqueta en los ejes
| plt.plot(x, y)
plt.title("Square function")
plt.xlabel("x")
plt.ylabel("y = x**2")
plt.grid(True)
plt.show()
|
Tipo de línea y color
Opciones de estilo y color en la documentación.
| plt.plot(x, y, "g--")
plt.show()
|
Otros parametros de interés
Propiedad |
Valores |
color |
Cualquier color Matplotlib o tupla (R, G, B) entre 0 y 1. |
linestyle o ls |
Tipo de línea: 'solid', 'dashed', 'dashdot', 'dotted' |
linewidth o lw |
Ancho de la línea en puntos (valor entero) |
marker |
Tipo de marcador |
markersize o ms |
Tamaño del marcador (valor entero) |
zorder |
Orden de superposición de gráficas |
| plt.plot([1, 0, 4, 2], color='red', linestyle='dashdot',
linewidth = 2, marker='*', markersize=12)
plt.show()
|
Pintar gráficas superpuestas
| plt.plot([1, 0, 4, 2], zorder=1)
plt.plot(x, y, zorder=0)
plt.show()
|
Pintar gráficas superpuestas II
Opciones de estilo y color en la documentación.
| x = np.linspace(-1.4, 1.4, 30)
plt.plot(x, x, 'g--', x, x**2, 'r:', x, x**3, 'b^')
plt.show()
|
Obtener referencias a líneas
| x = np.linspace(-1.4, 1.4, 30)
line1, line2, line3 = plt.plot(x, x, 'g--', x, x**2, 'r:', x, x**3, 'b^')
line1.set_linewidth(3.0)
line3.set_alpha(0.2)
plt.show()
|
Añadir una leyenda
Posibles localizaciones (loc): 'upper left', 'upper right', 'lower left', 'lower right', 'upper center', 'lower center', 'center left', 'center right', 'center', 'best'.
Más información en la documentación.
| x = np.linspace(-1.4, 1.4, 50)
plt.plot(x, x**2, "r--", label="Square function")
plt.plot(x, x**3, "g-", label="Cube function")
plt.legend(loc="best")
plt.grid(True)
plt.show()
|
Añadir textos
| x = np.linspace(-1.4, 1.4, 30)
plt.plot(x, x**2)
plt.text(0, 1.5, "Square function\n$y = x^2$",
fontsize=20, color='blue', horizontalalignment='center')
plt.show()
|
Añadir anotaciones
| x = np.linspace(-1.4, 1.4, 30)
px = 0.8
py = px**2
plt.plot(x, x**2, px, py, "ro")
plt.text(px, py - 0.3, "x = %0.2f\ny = %0.2f"%(px, py), rotation=50, color='gray')
plt.annotate("The point", xy=(px, py), xytext=(px-1.0,py+0.5),
color="green", weight="heavy", fontsize=14,
arrowprops={"facecolor": "lightgreen"})
plt.show()
|
Otros gráficos: scatter
| from numpy.random import rand
x, y = rand(2, 100)
plt.scatter(x, y)
plt.show()
|
Otros gráficos: histogram
| data = np.random.randn(400)
plt.hist(data, bins=20)
plt.show()
|
Tamaño de una figura
| x = np.linspace(-1.4, 1.4, 30)
plt.figure(figsize=(9,3))
plt.plot(x, x**2)
plt.show()
|
Guardar una figura
| x = np.linspace(-1.4, 1.4, 30)
plt.plot(x, x**2)
plt.savefig("my_square_function.png", dpi=300, transparent=False)
|