MDCIPROPE2026/sesion2_3/matplotlib_introduccion.py

103 lines
3.5 KiB
Python

import matplotlib.pyplot as plt
import numpy as np
#Grafico Curva Simple
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()
x = [1, 2, 3]
y = [4, 5, 6]
#Grafico de barras simple
plt.bar(x, y, width=0.5, color='RED')
plt.show()
#Grafico de dispersión
x = np.array([5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6])
y = np.array([99, 86, 87, 88, 111, 86, 103, 87, 94, 78, 77, 85, 86])
plt.scatter(x, y)
plt.xticks(np.arange(2, 19, 1)) # Establecer los ticks del eje x utilizando np.arange para generar una secuencia de valores desde 2 hasta 19 con un paso de 0.5. Esto asegurará que los ticks del eje x estén espaciados uniformemente y cubran el rango de los datos en el gráfico de dispersión.
plt.yticks(np.arange(min(y), max(y), 10)) # Establecer los ticks del eje y utilizando np.arange para generar una secuencia de valores desde el mínimo hasta el máximo de y con un paso de 10. Esto asegurará que los ticks del eje y estén espaciados uniformemente y cubran el rango de los datos en el gráfico de dispersión.
plt.title("Dispersion")
plt.xlabel("X")
plt.ylabel("Y")
plt.savefig("Graphs/dispersion.png", dpi=300, bbox_inches='tight') # Guardar el gráfico actual como un archivo de imagen con el nombre "Graphs.png" y una resolución de 300 puntos por pulgada (dpi). El param bbox_inches='tight' se utiliza para ajustar automáticamente los bordes del gráfico para que se ajusten al contenido, evitando recortes innecesarios alrededor del gráfico.
plt.show()
"""Tambien se pueden poner otros valores en los ejes"""
fruits = ["Manzanas", "Mangos", "Fresas"]
sales = [10 ,15, 7]
plt.bar(fruits, sales)
plt.show()
"""Mas variacones de graficas"""
x = np.array([_ for _ in range(30)])
y = np.array([np.random.randint(1, 100) for _ in range(30)])
plt.plot(x, y)
plt.title("Prueba")
plt.xlabel("X: 0 a 100")
plt.ylabel("Y: 0 a 100")
plt.show()
"""Multiples graficas en una sola figura"""
x = np.linspace(-1, 1, 100) # Generar un array de 100 valores equidistantes entre 0 y 2 utilizando la función linspace de NumPy. Esto se utiliza para crear un conjunto de puntos en el eje x para graficar una función matemática.
f1 = np.copy(x) # Crear una copia del array x y asignarla a f1. Esto se hace para preservar los valores originales de x mientras se realizan operaciones matemáticas en f1 debido que si solo se hace f1 = x pertenece a la misma instancia de memoria por lo quue toda modificacion a f1 se vera reflejada a x sin copy.
f2 = np.copy(x)**2
f3 = np.copy(x)**3
plt.figure(figsize=(5, 3)) # Crear una nueva figura para graficar con un tamaño específico de 5 pulgadas de ancho y 3 pulgadas de alto utilizando la función figure de Matplotlib.
plt.subplot(131) # Crear un subplot en la figura actual que ocupará la primera posición en una cuadrícula de 1 fila y 3 columnas utilizando la función subplot de Matplotlib. Esto permite organizar múltiples gráficos en una sola figura.
plt.plot(x, f1)
plt.title("Funcion n1")
plt.xlabel("X")
plt.ylabel("f1")
plt.subplot(132)
plt.plot(x, f2)
plt.title("Funcion n2")
plt.xlabel("X")
plt.ylabel("f2")
plt.subplot(133)
plt.plot(x, f3)
plt.title("Funcion n3")
plt.xlabel("X")
plt.ylabel("f3")
plt.show()
"""Otra opcion de multi figs"""
fig, ax = plt.subplots(figsize=(5,3))
ax.plot(x, f1, label="lineal")
ax.plot(x, f2, label="cuadratica")
ax.plot(x, f3, label="cubica")
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_title("Prueba de plots")
ax.legend()
plt.show()
n_f = np.sin(np.linspace(0, 10, 100))
x = np.arange(len(n_f))
fig, ax = plt.subplots(figsize=(5,3))
ax.plot(x, n_f, color="purple", linewidth=1, linestyle='-')
plt.show()