
Personalización de Gráficos con Matplotlib: Colores, Estilos y Temas
Aprende a personalizar completamente tus gráficos con Matplotlib: colores, estilos, fuentes, leyendas, anotaciones y temas profesionales.
¡Convierte tus gráficos en obras maestras visuales! En este tutorial aprenderás todas las técnicas de personalización avanzada de Matplotlib para crear visualizaciones profesionales y atractivas.
Objetivo: Dominar la personalización completa de gráficos en Matplotlib, incluyendo colores, estilos, fuentes, layouts y temas para crear visualizaciones impactantes.
Índice
- Sistema de Colores
- Estilos de Línea y Marcadores
- Fuentes y Texto
- Leyendas Avanzadas
- Personalización de Ejes
- Estilos y Temas
- Anotaciones y Texto
- Guardar Figuras
- Configuración Global
Sistema de Colores
Matplotlib ofrece múltiples formas de especificar colores para crear visualizaciones atractivas.
Colores Básicos
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x + np.pi/4)
# Colores por nombre
plt.figure(figsize=(12, 8))
plt.plot(x, y1, 'red', label='Rojo', linewidth=3)
plt.plot(x, y2, 'blue', label='Azul', linewidth=3)
plt.plot(x, y3, 'green', label='Verde', linewidth=3)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Colores por Nombre')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
Colores Hexadecimales y RGB
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x + np.pi/4)
plt.figure(figsize=(12, 8))
# Colores hexadecimales
plt.plot(x, y1, '#FF6B6B', label='#FF6B6B (Rojo coral)', linewidth=3)
# Colores RGB normalizados (0-1)
plt.plot(x, y2, (0.2, 0.6, 0.9), label='(0.2, 0.6, 0.9) Azul', linewidth=3)
# Colores RGB enteros (0-255) - necesita conversión
plt.plot(x, y3, np.array([255, 165, 0])/255, label='Naranja RGB', linewidth=3)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Colores Hexadecimales y RGB')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
Mapas de Colores (Colormaps)
import matplotlib.pyplot as plt
import numpy as np
# Crear datos para demostrar colormaps
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) * np.cos(Y)
plt.figure(figsize=(15, 10))
# Diferentes colormaps
colormaps = ['viridis', 'plasma', 'inferno', 'magma', 'cividis']
for i, cmap in enumerate(colormaps):
plt.subplot(2, 3, i+1)
plt.contourf(X, Y, Z, levels=20, cmap=cmap)
plt.colorbar()
plt.title(f'Colormap: {cmap}')
plt.xlabel('x')
plt.ylabel('y')
plt.tight_layout()
plt.show()
Paletas de Colores Personalizadas
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
# Crear colormap personalizado
colors = ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4', '#FECA57']
n_bins = 100
cmap_personalizado = LinearSegmentedColormap.from_list('custom', colors, N=n_bins)
# Datos
x = np.linspace(0, 10, 100)
y_lines = [np.sin(x + i*np.pi/4) for i in range(5)]
plt.figure(figsize=(12, 8))
for i, y in enumerate(y_lines):
color = cmap_personalizado(i / len(y_lines))
plt.plot(x, y, color=color, linewidth=3, label=f'Línea {i+1}')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Paleta de Colores Personalizada')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
Estilos de Línea y Marcadores
Controla la apariencia visual de tus líneas y puntos con estilos avanzados.
Estilos de Línea
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 50)
y = np.sin(x)
plt.figure(figsize=(14, 10))
# Diferentes estilos de línea
estilos = [
('solid', '-'),
('dashed', '--'),
('dashdot', '-.'),
('dotted', ':'),
('loosely dotted', (0, (1, 10))),
('densely dotted', (0, (1, 1))),
('loosely dashed', (0, (5, 10))),
('densely dashed', (0, (5, 1))),
('dashdotted', (0, (3, 5, 1, 5))),
('dashdotdotted', (0, (3, 5, 1, 5, 1, 5)))
]
for i, (nombre, estilo) in enumerate(estilos):
plt.subplot(4, 3, i+1)
plt.plot(x, np.sin(x + i*0.5), estilo, linewidth=2, color='blue')
plt.title(f'{nombre}', fontsize=10)
plt.grid(True, alpha=0.3)
plt.xticks([])
plt.yticks([])
plt.tight_layout()
plt.show()
Marcadores Avanzados
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 20)
y = np.sin(x)
plt.figure(figsize=(15, 12))
# Diferentes marcadores
marcadores = [
'.', 'o', 'v', '^', '<', '>', 's', 'p', '*', 'h', 'H', '+',
'x', 'D', 'd', '|', '_', '1', '2', '3', '4'
]
for i, marker in enumerate(marcadores):
plt.subplot(5, 5, i+1)
plt.plot(x, y, 'b-', marker=marker, markersize=8, linewidth=1,
markerfacecolor='red', markeredgecolor='black', markeredgewidth=1)
plt.title(f'Marcador: {marker}', fontsize=10)
plt.grid(True, alpha=0.3)
plt.xticks([])
plt.yticks([])
plt.tight_layout()
plt.show()
Combinación de Estilos
import matplotlib.pyplot as plt
import numpy as np
# Datos
x = np.linspace(0, 10, 30)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x + np.pi/4)
plt.figure(figsize=(12, 8))
# Combinación avanzada de estilos
plt.plot(x, y1, color='#FF6B6B', linestyle='-', linewidth=3, marker='o',
markersize=8, markerfacecolor='#FF6B6B', markeredgecolor='white',
markeredgewidth=2, label='Estilo 1')
plt.plot(x, y2, color='#4ECDC4', linestyle='--', linewidth=2, marker='s',
markersize=6, markerfacecolor='#4ECDC4', markeredgecolor='black',
markeredgewidth=1, label='Estilo 2')
plt.plot(x, y3, color='#45B7D1', linestyle='-.', linewidth=2, marker='^',
markersize=7, markerfacecolor='white', markeredgecolor='#45B7D1',
markeredgewidth=2, label='Estilo 3')
plt.xlabel('x', fontsize=12)
plt.ylabel('y', fontsize=12)
plt.title('Combinación Avanzada de Estilos', fontsize=14, fontweight='bold')
plt.legend(fontsize=12)
plt.grid(True, alpha=0.3)
plt.show()
Fuentes y Texto
Personaliza completamente el texto en tus gráficos.
Fuentes y Tamaños
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(12, 8))
plt.plot(x, y, 'b-', linewidth=2)
# Personalización de texto
plt.xlabel('Eje X - Variable Independiente', fontsize=14, fontweight='bold',
color='#2E4057', labelpad=10)
plt.ylabel('Eje Y - Variable Dependiente', fontsize=14, fontweight='bold',
color='#2E4057', labelpad=10)
plt.title('Personalización de Fuentes y Texto', fontsize=16, fontweight='bold',
color='#1B2631', pad=20)
# Texto adicional
plt.text(5, 0.5, 'Texto en el\ngráfico', fontsize=12, color='#E74C3C',
bbox=dict(boxstyle='round,pad=0.5', facecolor='white', alpha=0.8))
plt.grid(True, alpha=0.3)
plt.show()
Fuentes del Sistema
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(15, 10))
# Diferentes familias de fuentes
fuentes = ['serif', 'sans-serif', 'monospace']
estilos = ['normal', 'italic', 'bold']
for i, familia in enumerate(fuentes):
for j, estilo in enumerate(estilos):
plt.subplot(3, 3, i*3 + j + 1)
plt.plot(x, y, 'b-', linewidth=2)
plt.title(f'{familia} - {estilo}', fontsize=12,
fontfamily=familia, fontstyle=estilo, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
Texto con LaTeX
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure(figsize=(12, 8))
plt.plot(x, y1, 'b-', linewidth=2, label=r'$\sin(x)$')
plt.plot(x, y2, 'r--', linewidth=2, label=r'$\cos(x)$')
# Título con LaTeX
plt.title(r'Fórmulas Matemáticas: $\sin(x)$ y $\cos(x)$', fontsize=16, pad=20)
# Etiquetas con LaTeX
plt.xlabel(r'$x$ (radianes)', fontsize=14)
plt.ylabel(r'$y = f(x)$', fontsize=14)
# Texto con ecuaciones
plt.text(2, 0.8, r'$\sin(x) = \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!} x^{2n+1}$',
fontsize=12, bbox=dict(boxstyle='round,pad=0.5', facecolor='lightblue', alpha=0.8))
plt.legend(fontsize=12)
plt.grid(True, alpha=0.3)
plt.show()
Fig. 1: Texto matemático renderizado con LaTeX en gráficos de Matplotlib
Leyendas Avanzadas
Crea leyendas informativas y atractivas.
Leyendas Básicas y Posicionamiento
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x + np.pi/4)
plt.figure(figsize=(15, 10))
# Múltiples subplots con diferentes posiciones de leyenda
posiciones = ['upper left', 'upper right', 'lower left', 'lower right',
'center left', 'center right', 'lower center', 'upper center', 'center']
for i, pos in enumerate(posiciones):
plt.subplot(3, 3, i+1)
plt.plot(x, y1, 'b-', label='sin(x)', linewidth=2)
plt.plot(x, y2, 'r--', label='cos(x)', linewidth=2)
plt.plot(x, y3, 'g:', label='sin(x + π/4)', linewidth=2)
plt.legend(loc=pos, fontsize=8, framealpha=0.8)
plt.title(f'Legenda: {pos}', fontsize=10)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
Leyendas Personalizadas
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x + np.pi/4)
plt.figure(figsize=(12, 8))
lines = []
labels = []
# Crear líneas con diferentes estilos
line1, = plt.plot(x, y1, 'b-', linewidth=3, marker='o', markersize=6,
markerfacecolor='blue', markeredgecolor='white')
lines.append(line1)
labels.append('Función Seno\n(azul continua)')
line2, = plt.plot(x, y2, 'r--', linewidth=2, marker='s', markersize=6,
markerfacecolor='red', markeredgecolor='black')
lines.append(line2)
labels.append('Función Coseno\n(roja punteada)')
line3, = plt.plot(x, y3, 'g-.', linewidth=2, marker='^', markersize=6,
markerfacecolor='white', markeredgecolor='green')
lines.append(line3)
labels.append('Seno desplazado\n(verde rayada)')
# Leyenda personalizada
plt.legend(lines, labels, loc='upper right', fontsize=10,
frameon=True, fancybox=True, shadow=True,
borderpad=1, labelspacing=1.5, handlelength=3)
plt.xlabel('x', fontsize=12)
plt.ylabel('y', fontsize=12)
plt.title('Leyenda Personalizada con Múltiples Líneas', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.show()
Leyendas con Múltiples Columnas
import matplotlib.pyplot as plt
import numpy as np
# Crear muchos datos para demostrar múltiples columnas
x = np.linspace(0, 10, 100)
plt.figure(figsize=(12, 8))
# Generar múltiples funciones
for i in range(10):
y = np.sin(x + i * np.pi / 5) * np.exp(-0.1 * i)
plt.plot(x, y, linewidth=2, label=f'Función {i+1}')
# Leyenda con múltiples columnas
plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.1), ncol=5,
fontsize=10, frameon=True, fancybox=True)
plt.xlabel('x', fontsize=12)
plt.ylabel('y', fontsize=12)
plt.title('Leyenda con Múltiples Columnas', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
Personalización de Ejes
Controla completamente la apariencia de los ejes.
Límites y Escalas
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.exp(-x/3) * np.sin(2*x)
plt.figure(figsize=(15, 10))
# Diferentes escalas
escalas = ['linear', 'log', 'symlog', 'logit']
for i, escala in enumerate(escalas):
plt.subplot(2, 2, i+1)
plt.plot(x, y + i*0.5, 'b-', linewidth=2)
plt.yscale(escala)
plt.title(f'Escala Y: {escala}', fontsize=12)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
Ticks y Labels Personalizados
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.figure(figsize=(12, 8))
plt.plot(x, y, 'b-', linewidth=2)
# Personalizar ticks del eje X
plt.xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi],
['0', 'π/2', 'π', '3π/2', '2π'], fontsize=12)
# Personalizar ticks del eje Y
plt.yticks([-1, -0.5, 0, 0.5, 1],
['-1.0', '-0.5', '0.0', '0.5', '1.0'], fontsize=12)
# Líneas de referencia
plt.axhline(y=0, color='k', linestyle='-', alpha=0.3)
plt.axvline(x=np.pi, color='r', linestyle='--', alpha=0.7, label='π')
plt.xlabel('Ángulo (radianes)', fontsize=14)
plt.ylabel('sin(x)', fontsize=14)
plt.title('Ticks y Labels Personalizados', fontsize=16, fontweight='bold')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
Spines (Bordes) Personalizados
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(12, 8))
# Crear el gráfico
plt.plot(x, y, 'b-', linewidth=2)
# Personalizar spines
ax = plt.gca()
# Hacer invisible el borde superior y derecho
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
# Personalizar el grosor de los spines restantes
ax.spines['bottom'].set_linewidth(2)
ax.spines['left'].set_linewidth(2)
# Cambiar color de los spines
ax.spines['bottom'].set_color('#2E4057')
ax.spines['left'].set_color('#2E4057')
# Mover spines a diferentes posiciones
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))
plt.xlabel('x', fontsize=12)
plt.ylabel('sin(x)', fontsize=12)
plt.title('Spines Personalizados', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.show()
Estilos y Temas
Aplica estilos predefinidos o crea los tuyos propios.
Estilos Predefinidos
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# Lista de estilos disponibles
estilos = ['default', 'classic', 'bmh', 'dark_background', 'fivethirtyeight',
'ggplot', 'grayscale', 'seaborn-v0_8', 'Solarize_Light2', 'tableau-colorblind10']
plt.figure(figsize=(15, 12))
for i, estilo in enumerate(estilos):
with plt.style.context(estilo):
plt.subplot(4, 3, i+1)
plt.plot(x, y1, 'b-', linewidth=2, label='sin(x)')
plt.plot(x, y2, 'r--', linewidth=2, label='cos(x)')
plt.title(f'Estilo: {estilo}', fontsize=10)
plt.legend(fontsize=8)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
Crear Estilo Personalizado
import matplotlib.pyplot as plt
import numpy as np
# Definir estilo personalizado
estilo_personalizado = {
'figure.figsize': (10, 6),
'figure.facecolor': '#F8F9FA',
'axes.facecolor': '#FFFFFF',
'axes.edgecolor': '#2E4057',
'axes.linewidth': 1.5,
'axes.labelcolor': '#2E4057',
'axes.labelsize': 12,
'axes.titlesize': 14,
'axes.titleweight': 'bold',
'xtick.color': '#2E4057',
'ytick.color': '#2E4057',
'xtick.labelsize': 10,
'ytick.labelsize': 10,
'grid.color': '#BDC3C7',
'grid.alpha': 0.3,
'grid.linewidth': 0.5,
'legend.frameon': True,
'legend.facecolor': '#ECF0F1',
'legend.edgecolor': '#BDC3C7',
'legend.fontsize': 10
}
# Aplicar estilo personalizado
plt.style.use(estilo_personalizado)
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x + np.pi/4)
plt.figure()
plt.plot(x, y1, 'b-', linewidth=2, label='sin(x)')
plt.plot(x, y2, 'r--', linewidth=2, label='cos(x)')
plt.plot(x, y3, 'g:', linewidth=2, label='sin(x + π/4)')
plt.xlabel('Variable X')
plt.ylabel('Variable Y')
plt.title('Gráfico con Estilo Personalizado')
plt.legend()
plt.grid(True)
plt.show()
Anotaciones y Texto
Agrega texto informativo y flechas a tus gráficos.
Anotaciones Básicas
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(12, 8))
plt.plot(x, y, 'b-', linewidth=2)
# Anotación simple
plt.annotate('Máximo local', xy=(np.pi/2, 1), xytext=(np.pi/2 + 1, 0.8),
arrowprops=dict(facecolor='red', shrink=0.05, width=2),
fontsize=12, color='red', fontweight='bold')
# Anotación con flecha
plt.annotate('Cruce por cero', xy=(np.pi, 0), xytext=(np.pi + 1, -0.5),
arrowprops=dict(arrowstyle='->', color='green', linewidth=2),
fontsize=10, color='green')
# Anotación con caja
plt.annotate('Área de interés', xy=(6, 0.5), xytext=(7, 0.8),
bbox=dict(boxstyle='round,pad=0.5', facecolor='yellow', alpha=0.8),
fontsize=10, ha='center')
plt.xlabel('x', fontsize=12)
plt.ylabel('sin(x)', fontsize=12)
plt.title('Anotaciones en Gráficos', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
plt.show()
Anotaciones Avanzadas
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure(figsize=(14, 10))
plt.plot(x, y1, 'b-', linewidth=3, label='sin(x)')
plt.plot(x, y2, 'r--', linewidth=3, label='cos(x)')
# Anotaciones con diferentes estilos de flecha
estilos_flecha = ['->', '<-', '<->', '-|>', '<|-', 'fancy', 'simple', 'wedge']
for i, estilo in enumerate(estilos_flecha):
x_pos = (i + 1) * np.pi / 5
y_pos = np.sin(x_pos)
plt.annotate(f'{estilo}', xy=(x_pos, y_pos), xytext=(x_pos + 0.5, y_pos + 0.3),
arrowprops=dict(arrowstyle=estilo, color=f'C{i}', linewidth=2),
fontsize=10, ha='center')
plt.xlabel('x (radianes)', fontsize=12)
plt.ylabel('y', fontsize=12)
plt.title('Estilos de Flecha en Anotaciones', fontsize=14, fontweight='bold')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
Guardar Figuras
Aprende a guardar tus gráficos en diferentes formatos.
Formatos Básicos
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'b-', linewidth=2)
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.title('Gráfico para Guardar')
plt.grid(True, alpha=0.3)
# Guardar en diferentes formatos
plt.savefig('grafico.png', dpi=300, bbox_inches='tight')
plt.savefig('grafico.pdf', bbox_inches='tight')
plt.savefig('grafico.svg', bbox_inches='tight')
plt.savefig('grafico.jpg', dpi=150, bbox_inches='tight')
plt.show()
Configuración Avanzada de Guardado
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'b-', linewidth=2)
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.title('Configuración Avanzada de Guardado')
plt.grid(True, alpha=0.3)
# Configuración avanzada para PNG
plt.savefig('grafico_hd.png',
dpi=600, # Alta resolución
facecolor='white', # Color de fondo
edgecolor='none', # Sin borde
bbox_inches='tight', # Recortar espacios en blanco
pad_inches=0.1, # Padding
transparent=False) # Fondo opaco
# Configuración para publicación científica
plt.savefig('grafico_revista.pdf',
dpi=300,
facecolor='white',
edgecolor='none',
bbox_inches='tight',
pad_inches=0.05,
metadata={'Creator': 'Matplotlib Tutorial',
'Subject': 'Ejemplo de guardado avanzado'})
plt.show()
Configuración Global
Establece configuraciones que se aplican a todos tus gráficos.
Configuración con rcParams
import matplotlib.pyplot as plt
import numpy as np
# Configuración global
plt.rcParams.update({
'figure.figsize': (10, 6),
'figure.dpi': 100,
'savefig.dpi': 300,
'font.size': 12,
'axes.labelsize': 14,
'axes.titlesize': 16,
'xtick.labelsize': 12,
'ytick.labelsize': 12,
'legend.fontsize': 12,
'figure.titlesize': 18,
'axes.grid': True,
'grid.alpha': 0.3,
'grid.linewidth': 0.5,
'lines.linewidth': 2,
'lines.markersize': 6
})
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure()
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Configuración Global Aplicada')
plt.legend()
plt.show()
Archivo de Configuración Personalizado
# Crear archivo matplotlibrc personalizado
config_texto = """
# Configuración personalizada de Matplotlib
figure.figsize: 12, 8
figure.dpi: 100
savefig.dpi: 300
font.family: sans-serif
font.size: 12
axes.labelsize: large
axes.titlesize: x-large
xtick.labelsize: medium
ytick.labelsize: medium
legend.fontsize: medium
axes.grid: True
grid.alpha: 0.3
grid.linewidth: 0.5
lines.linewidth: 2
lines.markersize: 6
"""
# Guardar configuración
with open('matplotlibrc_personalizado', 'w') as f:
f.write(config_texto)
# Usar configuración personalizada
import matplotlib
matplotlib.rc_file('matplotlibrc_personalizado')
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.figure()
plt.plot(x, y, 'b-', label='sin(x)')
plt.xlabel('Variable X')
plt.ylabel('Variable Y')
plt.title('Usando Configuración Personalizada')
plt.legend()
plt.show()
¡Has dominado la personalización completa de gráficos en Matplotlib! Ahora puedes crear visualizaciones profesionales y atractivas.
En el próximo tutorial aprenderás sobre Subplots y Múltiples Figuras para crear layouts complejos con múltiples gráficos.
No hay comentarios aún
Sé el primero en comentar este tutorial.