Vamos a iniciar a trabajar con matplotlib aprendiendo a agregar comentarios y descripciones a los gráficos, para ello crearemos un gráfico con tres curvas en el dominio x = [0, 2] y adicionaremos 100 puntos equiespaciados dentro del dominio mediante:
import numpy as np
Luego podemos crear las curvas utilizando el método plot() en donde pasamos como parámetros:
Primero los puntos correspondientes a la coordenada en x.
Segundo los puntos de la coordenada en y.
Tercero el color de línea o el tipo de representación para los puntos de la línea, si en lugar de poner ‘pink’ ponemos ‘+’ cada punto es representado por un signo de (+).
Cuarto el atributo label con la descripción de la curva. Para que la descripción salga en pantalla debemos agregamos el método legend().
x = np.linspace(0, 2, 100)
x
array([0. , 0.02020202, 0.04040404, 0.06060606, 0.08080808, 0.1010101 , 0.12121212, 0.14141414, 0.16161616, 0.18181818, 0.2020202 , 0.22222222, 0.24242424, 0.26262626, 0.28282828, 0.3030303 , 0.32323232, 0.34343434, 0.36363636, 0.38383838, 0.4040404 , 0.42424242, 0.44444444, 0.46464646, 0.48484848, 0.50505051, 0.52525253, 0.54545455, 0.56565657, 0.58585859, 0.60606061, 0.62626263, 0.64646465, 0.66666667, 0.68686869, 0.70707071, 0.72727273, 0.74747475, 0.76767677, 0.78787879, 0.80808081, 0.82828283, 0.84848485, 0.86868687, 0.88888889, 0.90909091, 0.92929293, 0.94949495, 0.96969697, 0.98989899, 1.01010101, 1.03030303, 1.05050505, 1.07070707, 1.09090909, 1.11111111, 1.13131313, 1.15151515, 1.17171717, 1.19191919, 1.21212121, 1.23232323, 1.25252525, 1.27272727, 1.29292929, 1.31313131, 1.33333333, 1.35353535, 1.37373737, 1.39393939, 1.41414141, 1.43434343, 1.45454545, 1.47474747, 1.49494949, 1.51515152, 1.53535354, 1.55555556, 1.57575758, 1.5959596 , 1.61616162, 1.63636364, 1.65656566, 1.67676768, 1.6969697 , 1.71717172, 1.73737374, 1.75757576, 1.77777778, 1.7979798 , 1.81818182, 1.83838384, 1.85858586, 1.87878788, 1.8989899 , 1.91919192, 1.93939394, 1.95959596, 1.97979798, 2. ])
import matplotlib.pyplot as plt
x = np.linspace(0, 2, 100)
plt.plot(x, x, 'pink', label='lineal')
plt.plot(x, x**2, label='cuadratica')
plt.plot(x, x**3, label='cubica')
plt.legend()
<matplotlib.legend.Legend at 0x1be4983c050>
import matplotlib.pyplot as plt
x = np.linspace(0, 2, 100)
plt.plot(x, x, 'pink', label='lineal')
plt.plot(x, x**2, label='cuadratica')
plt.plot(x, x**3, label='cubica')
plt.legend()
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.title("Estructura de gráfico")
plt.xlim(0,2)
plt.ylim(0,8)
plt.grid()
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
for i,marker in enumerate(Line2D.markers):
plt.scatter(i%10,i,marker=marker,s=150)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2, 100)
plt.plot(x, x, '.',label='.')
plt.plot(x, x**2, '--',label='--')
plt.plot(x, x**3,'-.', label='-.')
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.title("Estructura de gráfico")
plt.show()
y2 = [1,4,9,16,25,36,49,64]
plt.plot(y2)
plt.show()
import numpy as np
np.random.seed(7)
datos = np.random.rand(2,20)
plt.scatter(datos[0],datos[1])
plt.show()
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
datos_mb,features = make_blobs(n_samples=20, centers=4, random_state=3)
plt.scatter(datos_mb[:, 0], datos_mb[:, 1], marker='o', c=features)
plt.show()
x = list(range(-4 , 5))
b = np.linspace(-4, 4, 200)
y = [i**2 for i in x]
z = np.polyfit(x, y, 2)
p = np.poly1d(z)
plt.plot(x,y,'x',b,p(b))
[<matplotlib.lines.Line2D at 0x1be53be3650>, <matplotlib.lines.Line2D at 0x1be53be3dd0>]
import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(2, 2) # Figura con grillas de ejes 2x2
fig.suptitle('Este es un título')
Text(0.5, 0.98, 'Este es un título')
import numpy as np
import matplotlib.pyplot as plt
cmaps = [
('Sequential', [
'Greys', 'Purples', 'Blues', 'Greens', 'Oranges', 'Reds',
'YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu',
'GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn', 'YlGn']),
('Sequential (2)', [
'binary', 'gist_yarg', 'gist_gray', 'gray', 'bone', 'pink',
'spring', 'summer', 'autumn', 'winter', 'cool', 'Wistia',
'hot', 'afmhot', 'gist_heat', 'copper']),
]
gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient))
def plot_color_gradients(clase_de_mapa, lista_de_datos):
numero_de_filas = len(lista_de_datos)
altura = 0.35 + 0.15 + (numero_de_filas + (numero_de_filas-1)*0.1)*0.22
fig, axes = plt.subplots(nrows=numero_de_filas, figsize=(6.4, altura))
fig.subplots_adjust(top=1-.35/altura, bottom=.15/altura, left=0.2, right=0.99)
axes[0].set_title('Mapa de colores de tipo: ' + clase_de_mapa , fontsize=14)
for ax, nombre in zip(axes, lista_de_datos):
ax.imshow(gradient, aspect='auto', cmap=plt.get_cmap(nombre))
ax.text(-.01, .5, nombre, va='center', ha='right', fontsize=10,transform=ax.transAxes)
for ax in axes:
ax.set_axis_off()
for clase_de_mapa, lista_de_datos in cmaps:
plot_color_gradients(clase_de_mapa, lista_de_datos)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors
np.random.seed(7)
x,y = zip(*np.random.rand(50,2))
color=[]
print(len(x))
for i in range(0,50):
color.append(x[i]+y[i]/2)
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", ["red","yellow","green", "blue"])
plt.scatter(x,y,c=color, cmap='hot')
plt.colorbar()
plt.show()
50