MATPLOTLIB
es una de las librerías principales de
Python para la visualización de datos, diseñada para crear gráficos estáticos,
interactivos y animados en 2D y 3D. Funciona de forma natural con estructuras
de datos de NumPy y Pandas, permitiendo generar gráficos con calidad para
publicaciones científicas.
Funciones más importantes:
La librería se utiliza principalmente a través de su módulo matplotlib.pyplot.
Aquí tienes las funciones más utilizadas:
- plot(): Genera gráficos de líneas, uniendo una secuencia de puntos. Es
ideal para observar tendencias y series temporales.
- scatter(): Dibuja gráficos de dispersión (puntos sin conectar por
líneas). Es fundamental para mostrar la correlación entre dos variables
numéricas.
- bar() o barh(): Crea diagramas de barras (verticales u horizontales),
perfectos para comparar cantidades entre diferentes categorías
- hist(): Calcula y dibuja histogramas, lo que ayuda a entender la
distribución de frecuencia de una variable numérica.
- subplots(): Crea una cuadrícula con múltiples gráficos (figura y ejes)
dentro de una misma ventana. Permite organizar diferentes visualizaciones
de manera estructurada.
- xlabel() / ylabel() y title(): Añaden etiquetas a los ejes X e Y y
establecen un título principal para el gráfico.
- legend(): Muestra una leyenda para identificar qué representa cada
color o línea en el gráfico.
- show(): Muestra la ventana o el área donde se ha renderizado el
gráfico.
- savefig(): Guarda la figura generada en diferentes formatos de imagen
de alta calidad, como PNG, PDF o SVG.
Ejercicio 1: grafico de
líneas
import matplotlib.pyplot
as plt
# 1. Datos para los ejes
X e Y
x = [1, 2, 3, 4, 5]
y = [1, 3, 7, 5, 7]
# 2. Crear el gráfico de
línea
plt.plot(x, y, label='Mi
línea', color='blue', marker='o')
# 3. Personalizar el
gráfico
plt.title('Ejemplo Básico
de Gráfico')
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.legend()
plt.grid(True)
# 4. Mostrar el gráfico
en pantalla
plt.show()
#print("hola
mundo")
2) grafico circular
import matplotlib.pyplot
as plt
# 1. Datos para el
gráfico
categorias = ['Manzanas',
'Plátanos', 'Naranjas', 'Uvas']
cantidades = [30, 45, 15,
10]
colores = ['#ff9999',
'#66b3ff', '#99ff99', '#ffcc99'] # Colores opcionales
# 2. Crear el gráfico
circular
plt.pie(
cantidades,
labels=categorias,
autopct='%1.1f%%', # Muestra el porcentaje con un decimal
startangle=90, # Rota el inicio del gráfico a 90 grados
colors=colores # Aplica la paleta de colores
personalizada
)
# 3. Personalizar y
mostrar
plt.title('Distribución
de Frutas')
plt.show()
3)GRAFICO DE LINEAS 2
import matplotlib.pyplot as plt
#datos
x=[1,2,4,7,10,14,15,17,19]
y=[2,3,5,7,8,9,14,17,14]
#crear el grafico de lineas
plt.plot(x,y)
#añadir titulo y etiquetas
plt.title("evolucion de
produccion")
plt.xlabel("pedidos")
plt.ylabel("tn")
#añadir cuadricula
plt.grid(True)
#mostrar el grafico
plt.plot(x,
y, color="#591A69", linewidth=3)
plt.show()
4) GRAFICOS DE COLUMNAS
import matplotlib.pyplot as plt
# 1. Definir los datos (Categorías y sus
Valores)
categorias = ['A', 'B', 'C', 'D']
valores = [23, 45, 12, 30]
# Opcional: Definir una lista de colores en
código HEX (uno para cada columna)
colores_hex = ['#3498db', '#e74c3c',
'#2ecc71', '#f1c40f']
# 2. Crear el gráfico de columnas
# Si quieres un solo color para todas, usa:
color='#3498db'
plt.bar(categorias, valores,
color=colores_hex, edgecolor='#2c3e50', linewidth=1.5)
# 3. Personalizar el diseño
plt.title('Gráfico de Columnas con Colores
Personalizados', fontsize=14, fontweight='bold')
plt.xlabel('Categorías', fontsize=12)
plt.ylabel('Valores', fontsize=12)
plt.grid(axis='y', linestyle='--',
alpha=0.7) # Cuadrícula solo en el eje Y
# 4. Mostrar el resultado
plt.show()
5) GRAFICO DE PUNTOS
import matplotlib.pyplot as plt
# 1. Generar 50 datos usando las
herramientas nativas de Python
# Creamos una secuencia del 1 al 50 para el
eje X
x = list(range(1, 51))
# Generamos 50 valores para el eje Y usando
una fórmula matemática (ej. una curva con saltos)
y = [(i ** 1.5) + (i * 2 if i % 2 == 0 else
-i * 3) for i in x]
# 2. Crear el gráfico de puntos
plt.scatter(x,
y, color='#2ecc71', s=50, marker='o', edgecolor='#27ae60')
# 3. Personalizar el diseño
plt.title('Gráfico de 50 Puntos ',
fontsize=14)
plt.xlabel('Eje X (Índice)')
plt.ylabel('Eje Y (Valor)')
plt.grid(True,
linestyle='--', alpha=0.5)
# 4. Mostrar el gráfico
plt.show()
7)grafico de colores
import matplotlib.pyplot as plt
# 1. Crear una matriz de datos 5x5 usando
listas nativas de Python
# Cada fila representa una categoría y cada
columna una variable
datos = [
[43, 14, 25, 17, 33],
[44, 81, 72, 18, 32],
[35, 20, 27, 25, 18],
[47, 13, 22, 23, 11],
[40, 85, 25, 60, 30],
]
# Etiquetas para los ejes
ciudades = ['Madrid', 'Barcelona',
'Valencia', 'Sevilla', 'Bilbao']
meses = ['Ene', 'Feb', 'Mar', 'Abr', 'May']
# 2. Crear la figura y el mapa de calor
fig, ax =
plt.subplots(figsize=(6, 5))
# 'cmap' define la paleta de colores (ej:
'viridis', 'coolwarm', 'inferno', 'magma')
# 'interpolation' define si se ven los
pixeles duros o difuminados
im =
ax.imshow(datos, cmap='coolwarm', interpolation='nearest')
# 3. Agregar la barra de color (leyenda de
intensidad)
cbar =
ax.figure.colorbar(im, ax=ax)
cbar.ax.set_ylabel("Escala de
Valores", rotation=-90, va="bottom")
# 4. Personalizar los ejes con sus nombres
de filas y columnas
ax.set_xticks(range(len(meses)))
ax.set_xticklabels(meses)
ax.set_yticks(range(len(ciudades)))
ax.set_yticklabels(ciudades)
# 5. Opcional: Agregar el número exacto
dentro de cada celda
for i in range(len(ciudades)):
for j in range(len(meses)):
# Si el valor
es muy alto o bajo, puedes cambiar el color del texto para que se lea bien
color_texto =
"white" if datos[i][j] > 70 or datos[i][j] < 25 else
"black"
ax.text(j, i,
str(datos[i][j]), ha="center", va="center",
color=color_texto, fontweight='bold')
# 6. Títulos y ajustes finales
plt.title('Mapa de Calor - Datos de Ventas
por Ciudad', fontsize=14, pad=15)
plt.tight_layout()
# 7. Mostrar el gráfico
plt.show()
8) grafico tridimensional
from
mpl_toolkits.mplot3d import Axes3D
fig=plt.figure()
ax=fig.add_subplot(111,projection="3d")
ax.plot([0,1],[0,4],[0,7])
plt.show()






