Funciones de Matplotlib

Matplotlib es la biblioteca de visualización de datos más utilizada en Python; admite la creación de gráficos estáticos, dinámicos e interactivos.

Este documento recopila de forma completa las funciones y métodos de todas las interfaces públicas de Matplotlib, para facilitar la consulta rápida de sus funciones y usos correspondientes.


Dos interfaces de programación

Matplotlib ofrece dos formas de uso, adecuadas para diferentes escenarios.

Característica Interfaz Axes (explícita / orientada a objetos) Interfaz pyplot (implícita / funcional)
Forma de uso Crear primero los objetos Figure y Axes, luego llamar a los métodos del objeto Llamar directamente a las funciones del módulo pyplot, operando implícitamente sobre el gráfico actual
Escenario adecuado Gráficos complejos, múltiples subtramas, control fino necesario Gráficos rápidos, exploración interactiva, gráficos simples
Ejemplo de código fig, ax = plt.subplots(); ax.plot(x, y) plt.plot(x, y); plt.title("título")
Nivel de recomendación Recomendado(más claro, más controlable) Adecuado para escenarios simples y prototipos rápidos

La interfaz Axes es la forma de programación recomendada oficialmente; la lógica del código es más clara y menos propensa a errores al manejar múltiples subtramas y gráficos complejos. Para facilitar la consulta rápida, a continuación se enumeran tanto las funciones de pyplot como los métodos correspondientes de Axes.


Módulo pyplot - Lista completa de funciones

pyplot es la interfaz de nivel superior de Matplotlib y ofrece una experiencia de trazado similar a MATLAB. A continuación se enumeran todas las funciones según la clasificación oficial.

1. Gestión de Figure y Axes

Funciones para crear y gestionar Figure (lienzo) y Axes (sistema de coordenadas/subtramas).

FunciónDescripción
figure()Crea una nueva Figure o activa una Figure existente
subplots()RecomendadoCrea una Figure y un conjunto de subtramas Axes
subplot()Agrega una subtrama individual a la Figure actual (por índice de fila y columna)
subplot2grid()Crea una subtrama en la posición especificada de un diseño de cuadrícula
subplot_mosaic()Crea diseños complejos no uniformes usando cadenas de etiquetas
axes()Agrega un Axes a la Figure actual
gca()Obtiene el objeto Axes actual
gcf()Obtiene el objeto Figure actual
sca()Establece el Axes actual
cla()Limpia el Axes actual
clf()Limpia la Figure actual
close()Cierra la ventana de Figure
delaxes()Elimina el Axes especificado de la Figure
fignum_exists()Comprueba si existe una Figure con el número especificado
get_figlabels()Devuelve la lista de etiquetas de todas las Figures
get_fignums()Devuelve la lista de números de todas las Figures
twinx()Crea un doble eje y que comparte el eje x
twiny()Crea un doble eje x que comparte el eje y

2. Gráficos básicos

Las funciones de trazado de tipos de gráficos más utilizados.

FunciónDescripción
plot()Dibuja un gráfico de líneas (el más común)
scatter()Dibuja un diagrama de dispersión, con soporte para mapeo de tamaño/color/transparencia
bar()Dibuja un gráfico de barras verticales
barh()Dibuja un gráfico de barras horizontales
bar_label()Agrega etiquetas de valor en las barras del gráfico de barras
grouped_bar()Dibuja un gráfico de barras agrupadas
pie()Dibuja un gráfico de pastel
pie_label()Agrega etiquetas en el gráfico de pastel
stem()Dibuja un gráfico de tallo y hojas (gráfico de fósforos / stem plot)
eventplot()Dibuja un gráfico de eventos (varias líneas horizontales marcan posiciones de eventos)
step()Dibuja un gráfico escalonado
fill()Dibuja polígonos rellenos
fill_between()Rellena el área entre dos curvas horizontales
fill_betweenx()Rellena el área entre dos curvas verticales
stackplot()Dibuja un gráfico de área apilada
broken_barh()Dibuja un gráfico de barras horizontales discontinuas (estilo diagrama de Gantt)
vlines()Dibuja una línea de referencia vertical
hlines()Dibuja una línea de referencia horizontal
errorbar()Dibuja un gráfico de líneas con barras de error
loglog()Gráfico de líneas con escala logarítmica doble
semilogx()Gráfico de líneas con eje x en escala logarítmica
semilogy()Gráfico de líneas con eje y en escala logarítmica
polar()Dibuja en un sistema de coordenadas polares

3. Líneas de intervalo (Spans)

Dibuja líneas de referencia horizontales y verticales y regiones sombreadas.

FunciónDescripción
axhline()Agrega una línea horizontal que atraviesa el Axes
axhspan()Agrega una banda horizontal sombreada que atraviesa el Axes
axvline()Agrega una línea vertical que atraviesa el Axes
axvspan()Agrega una banda vertical sombreada que atraviesa el Axes
axline()Agrega una línea recta infinita que pasa por dos puntos

4. Análisis de espectro

Funciones para procesamiento de señales y visualización de espectros.

FunciónDescripción
acorr()Dibuja un gráfico de autocorrelación
xcorr()Dibujar gráfico de correlación cruzada
angle_spectrum()Dibujar espectro angular
magnitude_spectrum()Dibujar espectro de magnitud
phase_spectrum()Dibujar espectro de fase
psd()Dibujar densidad espectral de potencia
csd()Dibujar densidad espectral cruzada
cohere()Dibujar coherencia
specgram()Dibujar espectrograma (gráfico tiempo-frecuencia)

5. Gráficos estadísticos

Dibujar gráficos relacionados con distribuciones estadísticas.

FunciónDescripción de la función
boxplot()Dibujar diagrama de caja
violinplot()Dibujar diagrama de violín
ecdf()Dibujar función de distribución acumulada empírica (ECDF)

6. Agrupación en intervalos e histogramas

FunciónDescripción de la función
hist()Dibujar histograma unidimensional
hist2d()Dibujar histograma bidimensional
hexbin()Dibujar gráfico de binning hexagonal
stairs()Dibujar histograma escalonado (nueva versión, sustituye al modo step de hist)

7. Curvas de nivel

FunciónDescripción de la función
contour()Dibujar contornos
contourf()Dibujar contornos rellenos
clabel()Añadir etiquetas a los contornos

8. Arreglos bidimensionales e imágenes

Funciones de visualización para mostrar datos bidimensionales, matrices e imágenes.

FunciónDescripción de la función
imshow()Mostrar imagen o arreglo bidimensional (mapa de calor)
matshow()Mostrar matriz como imagen en una nueva Figure
pcolor()Dibujar gráfico de cuadrícula pseudocolor (crea PolyCollection)
pcolormesh()Dibujar gráfico de cuadrícula pseudocolor (crea QuadMesh, mejor rendimiento)
spy()Dibujar patrón de elementos no nulos de una matriz dispersa
figimage()Colocar imagen a nivel de Figure (no de Axes)

9. Mallas triangulares no estructuradas

FunciónDescripción de la función
triplot()Dibujar malla triangular no estructurada
tripcolor()Dibujar gráfico pseudocolor en malla triangular
tricontour()Dibujar contornos sobre malla triangular
tricontourf()Dibujar contornos rellenos sobre malla triangular

10. Texto y anotaciones

FunciónDescripción de la función
text()Añadir texto en coordenadas específicas del Axes
figtext()Añadir texto en posición específica de la Figure
annotate()Añadir anotación con flecha
arrow()Añadir flecha
legend()Añadir leyenda en el Axes
figlegend()Añadir leyenda a nivel de Figure
table()Añadir tabla en el Axes

11. Campos vectoriales

FunciónDescripción de la función
quiver()Dibujar campo vectorial (gráfico de flechas)
quiverkey()Añadir clave de leyenda al campo vectorial
barbs()Dibujar gráfico de barbas (en meteorología indica velocidad y dirección del viento)
streamplot()Dibujar gráfico de líneas de flujo

12. Configuración de ejes

Funciones para configurar el rango, las marcas, las etiquetas y la escala de los ejes.

FunciónDescripción de la función
title()Establecer título del Axes
suptitle()Establecer título general de la Figure
xlabel()Establecer etiqueta del eje x
ylabel()Establecer etiqueta del eje y
xlim()Obtener o establecer rango del eje x
ylim()Obtener o establecer rango del eje y
xscale()Establecer escala del eje x (linear/log/symlog/logit...)
yscale()Establecer escala del eje y (linear/log/symlog/logit...)
xticks()Obtener o establecer posiciones y etiquetas de las marcas del eje x
yticks()Obtener o establecer posiciones y etiquetas de las marcas del eje y
tick_params()Ajustar apariencia de las marcas (dirección, color, tamaño, rotación de etiquetas, etc.)
ticklabel_format()Establecer formato de las etiquetas de marcas (notación científica, etc.)
locator_params()Controlar parámetros del localizador de marcas
minorticks_on()Mostrar marcas secundarias
minorticks_off()Ocultar marcas secundarias
rgrids()Obtener o establecer líneas de cuadrícula radiales en gráficos polares
thetagrids()Obtener o establecer líneas de cuadrícula angulares en gráficos polares
grid()Activar o desactivar líneas de cuadrícula
axis()Funciones convenientes para obtener o establecer ciertos atributos del eje
box()Activar o desactivar los bordes del Axes
autoscale()Escalar automáticamente los ejes para ajustarse a los datos

13. Diseño (layout)

Funciones para controlar la disposición y el espaciado de los subgráficos.

FunciónDescripción de la función
subplots_adjust()Ajustar manualmente el espaciado de subgráficos (left/right/top/bottom/wspace/hspace)
tight_layout()Ajustar automáticamente los parámetros de subgráficos para una disposición compacta
margins()Establecer u obtener márgenes de datos de los ejes
subplot_tool()Iniciar ventana de herramienta interactiva de ajuste de subgráficos

14. Mapas de color

Funciones relacionadas con colormaps y barras de color.

FunciónDescripción de la función
colorbar()Añadir barra de color
clim()Establecer rango de datos del mapa de color
get_cmap()Obtener objeto colormap por nombre
set_cmap()Establecer colormap predeterminado
gci()Obtener el objeto de imagen actualmente mapeable a color
sci()Establecer el objeto de imagen actualmente mapeable a color
imread()Leer imagen desde archivo a un arreglo
imsave()Guardar arreglo como archivo de imagen
colormapsObjeto registro de colormaps
color_sequencesObjeto registro de secuencias de color

15. Configuración

Funciones para administrar los parámetros de configuración global de Matplotlib.

FunciónDescripción de la función
rc()Establecer parámetros rc (se pueden configurar en lote)
rc_context()Administrador de contexto para establecer parámetros rc temporalmente
rcdefaults()Restaurar todos los parámetros rc a sus valores predeterminados

16. Salida e interacción

Funciones para controlar la visualización, el guardado y el modo interactivo de las figuras.

FunciónDescripción de la función
show()Mostrar todas las Figures abiertas
savefig()Guardar la Figure actual en un archivo
draw()Forzar el re-renderizado de la Figure actual
draw_if_interactive()Renderizar la Figure si está en modo interactivo
pause()Pausar la cantidad de segundos especificada (procesando eventos durante la pausa)
ion()Activar modo interactivo
ioff()Desactivar modo interactivo
isinteractive()Devolver si se está actualmente en modo interactivo
install_repl_displayhook()Instalar hook de visualización de REPL (hace que las Figures se muestren automáticamente)
uninstall_repl_displayhook()Desinstalar hook de visualización de REPL
switch_backend()Cambiar de backend

17. Otras funciones de utilidad

FunciónDescripción de la función
connect()Vincular función de devolución de llamada de evento
disconnect()Desvincular función de devolución de llamada de evento
ginput()Obtener punto de coordenadas mediante clic del ratón
waitforbuttonpress()Esperar pulsación de ratón o teclado y devolver el tipo de evento
findobj()Buscar objetos Artist que coincidan con condiciones especificadas
get()Obtener valor de atributo de un objeto Artist
getp()Obtener atributos de un objeto Artist (alias de get)
setp()Establecer atributos de un objeto Artist
get_current_fig_manager()Obtener el administrador de ventanas de la Figure actual
new_figure_manager()Crear un nuevo administrador de Figure para la Figure especificada
set_loglevel()Establecer nivel de registro de Matplotlib
xkcd()Cambiar al estilo xkcd (cómic dibujado a mano)

Objeto Axes - Lista completa de métodos

Axes (objeto Axes) representa un subgráfico dentro de una Figure, que contiene datos, marcas, etiquetas, títulos, etc. A continuación se enumeran todos los métodos según la clasificación oficial.

1. Métodos básicos de dibujo

MétodoDescripción de la función
Axes.plot()Gráfico de líneas
Axes.scatter()Gráfico de dispersión
Axes.bar()Gráfico de barras verticales
Axes.barh()Gráfico de barras horizontales
Axes.bar_label()Añadir etiquetas de valor en las barras
Axes.grouped_bar()Gráfico de barras agrupadas
Axes.pie()Gráfico circular
Axes.pie_label()Etiquetas de gráfico circular
Axes.stem()Gráfico de tallos
Axes.eventplot()Gráfico de eventos
Axes.step()Gráfico escalonado
Axes.fill()Rellenar polígono
Axes.fill_between()Rellenar área horizontal
Axes.fill_betweenx()Rellenar área vertical
Axes.stackplot()Gráfico de áreas apiladas
Axes.broken_barh()Gráfico de barras horizontales discontinuas
Axes.vlines()Línea de referencia vertical
Axes.hlines()Línea de referencia horizontal
Axes.errorbar()Gráfico de líneas con barras de error
Axes.loglog()Coordenadas log-log
Axes.semilogx()Coordenadas logarítmicas en eje x
Axes.semilogy()Coordenadas logarítmicas en eje y

2. Métodos de líneas de intervalo

MétodoDescripción de la función
Axes.axhline()Línea de referencia horizontal
Axes.axvline()Línea de referencia vertical
Axes.axhspan()Banda sombreada horizontal
Axes.axvspan()Banda sombreada vertical
Axes.axline()Línea recta infinita que pasa por dos puntos

3. Métodos de análisis de espectro

MétodoDescripción de la función
Axes.acorr()Gráfico de autocorrelación
Axes.xcorr()Gráfico de correlación cruzada
Axes.angle_spectrum()Espectro angular
Axes.magnitude_spectrum()Espectro de magnitud
Axes.phase_spectrum()Espectro de fase
Axes.psd()Densidad espectral de potencia
Axes.csd()Densidad espectral cruzada
Axes.cohere()Coherencia
Axes.specgram()Espectrograma (gráfico tiempo-frecuencia)

4. Métodos estadísticos

MétodoDescripción de la función
Axes.boxplot()Diagrama de caja (boxplot)
Axes.bxp()Dibujar un diagrama de caja a partir de estadísticas precalculadas
Axes.violinplot()Diagrama de violín
Axes.violin()Dibujar un diagrama de violín a partir de estadísticas precalculadas
Axes.ecdf()Función de distribución acumulada empírica

5. Métodos de agrupación en intervalos e histogramas

MétodoDescripción de la función
Axes.hist()Histograma
Axes.hist2d()Histograma 2D
Axes.hexbin()Gráfico de hexágonos (hexbin)
Axes.stairs()Histograma escalonado

6. Métodos de curvas de nivel

MétodoDescripción de la función
Axes.contour()Curvas de nivel (contorno)
Axes.contourf()Curvas de nivel rellenas
Axes.clabel()Etiquetas de curvas de nivel

7. Métodos de arreglos bidimensionales

MétodoDescripción de la función
Axes.imshow()Mostrar imagen/mapa de calor
Axes.matshow()Imagen de matriz
Axes.pcolor()Malla de pseudocolor (PolyCollection)
Axes.pcolorfast()Pseudocolor rápido (dibujado con imshow)
Axes.pcolormesh()Malla de pseudocolor (QuadMesh, recomendado)
Axes.spy()Patrón de matriz dispersa

8. Métodos de mallas triangulares no estructuradas

MétodoDescripción de la función
Axes.triplot()Líneas de malla triangular
Axes.tripcolor()Pseudocolor de malla triangular
Axes.tricontour()Curvas de nivel de malla triangular
Axes.tricontourf()Curvas de nivel rellenas de malla triangular

9. Métodos de texto y anotaciones

MétodoDescripción de la función
Axes.text()Añadir texto
Axes.annotate()Añadir anotación con flecha
Axes.table()Añadir tabla
Axes.arrow()Añadir flecha
Axes.inset_axes()Crear subgráfico incrustado dentro de los Axes
Axes.indicate_inset()Marcar la región del subgráfico incrustado en los Axes padre
Axes.indicate_inset_zoom()Marcar la región ampliada del subgráfico incrustado
Axes.secondary_xaxis()Añadir eje x auxiliar (mostrar los mismos datos en otra ubicación)
Axes.secondary_yaxis()Añadir eje y auxiliar

10. Métodos de campos vectoriales

MétodoDescripción de la función
Axes.quiver()Campo vectorial (gráfico de flechas)
Axes.quiverkey()Escala de leyenda de campo vectorial
Axes.barbs()Gráfico de barbas (wind barbs)
Axes.streamplot()Gráfico de líneas de flujo (streamline)

11. Métodos de limpieza

MétodoDescripción de la función
Axes.cla()Limpiar todo el contenido de los Axes
Axes.clear()Limpiar los Axes (igual que cla())

12. Métodos de apariencia

MétodoDescripción de la función
Axes.axis()Establecer visibilidad o rango de los ejes
Axes.set_axis_off()Ocultar los ejes
Axes.set_axis_on()Mostrar los ejes
Axes.set_frame_on()Mostrar el borde de los Axes
Axes.get_frame_on()Obtener si el borde es visible
Axes.set_axisbelow()Establecer si la cuadrícula/las marcas de graduación están detrás de los datos
Axes.get_axisbelow()Obtener el nivel de la cuadrícula/marcas de graduación
Axes.grid()Establecer líneas de cuadrícula
Axes.get_facecolor()Obtener el color de fondo de los Axes
Axes.set_facecolor()Establecer el color de fondo de los Axes

13. Ciclo de propiedades

MétodoDescripción de la función
Axes.set_prop_cycle()Establecer el ciclo de propiedades como color/estilo de línea

14. Control de ejes y marcas (ticks)

Acceso a los ejes:

MétodoDescripción de la función
Axes.xaxis / Axes.yaxisObtener el objeto Axis de los ejes x/y (propiedad)
Axes.get_xaxis() / get_yaxis()Obtener el objeto Axis de los ejes x/y

Rango y dirección de los ejes:

MétodoDescripción de la función
Axes.set_xlim() / get_xlim()Establecer/Obtener el rango del eje x
Axes.set_ylim() / get_ylim()Establecer/Obtener el rango del eje y
Axes.set_xbound() / get_xbound()Establecer/Obtener los límites inferior y superior del eje x
Axes.set_ybound() / get_ybound()Establecer/Obtener los límites inferior y superior del eje y
Axes.invert_xaxis()Invertir la dirección del eje x
Axes.invert_yaxis()Invertir la dirección del eje y
Axes.xaxis_inverted() / yaxis_inverted()Consultar si el eje está invertido
Axes.set_xinverted() / get_xinverted()Establecer/Obtener si el eje x está invertido
Axes.set_yinverted() / get_yinverted()Establecer/Obtener si el eje y está invertido
Axes.update_datalim()Extender el rango de datos con nuevos puntos de datos

Etiquetas de ejes y leyenda:

MétodoDescripción de la función
Axes.set_xlabel() / get_xlabel()Establecer/Obtener la etiqueta del eje x
Axes.set_ylabel() / get_ylabel()Establecer/Obtener la etiqueta del eje y
Axes.label_outer()Conservar solo las etiquetas de marcas de graduación de los subgráficos exteriores
Axes.set_title() / get_title()Establecer/Obtener el título de los Axes
Axes.legend()Añadir leyenda
Axes.get_legend()Obtener el objeto de leyenda actual
Axes.get_legend_handles_labels()Obtener los manejadores (handles) y etiquetas de la leyenda

Escala de los ejes:

MétodoDescripción de la función
Axes.set_xscale() / get_xscale()Establecer/Obtener la escala del eje x
Axes.set_yscale() / get_yscale()Establecer/Obtener la escala del eje y

Autoescalado y márgenes:

MétodoDescripción de la función
Axes.autoscale()Autoescalar la vista para ajustar los datos
Axes.autoscale_view()Autoescalar solo la vista (sin cambiar márgenes)
Axes.margins()Establecer u obtener los márgenes de datos
Axes.relim()Recalcular la extensión de datos según los Artist actuales
Axes.use_sticky_edges()Usar bordes adhesivos (sticky edges)
Axes.set_xmargin() / get_xmargin()Establecer/Obtener el margen del eje x
Axes.set_ymargin() / get_ymargin()Establecer/Obtener el margen del eje y
Axes.set_autoscale_on() / get_autoscale_on()Establecer/Obtener si el autoescalado está activo
Axes.set_autoscalex_on() / get_autoscalex_on()Establecer/Obtener si el eje x tiene autoescalado
Axes.set_autoscaley_on() / get_autoscaley_on()Establecer/Obtener si el eje y tiene autoescalado

Relación de aspecto:

MétodoDescripción de la función
Axes.set_aspect() / get_aspect()Establecer/Obtener la relación de aspecto de los ejes ('equal'/'auto'/numérico)
Axes.set_box_aspect() / get_box_aspect()Establecer/Obtener la relación de aspecto de la caja de los Axes
Axes.apply_aspect()Aplicar la configuración actual de relación de aspecto
Axes.set_adjustable() / get_adjustable()Establecer/Obtener la dirección ajustable ('box'/'datalim')

Marcas de graduación y etiquetas:

MétodoDescripción de la función
Axes.set_xticks() / get_xticks()Establecer/Obtener las posiciones de las marcas de graduación del eje x
Axes.set_yticks() / get_yticks()Establecer/Obtener las posiciones de las marcas de graduación del eje y
Axes.set_xticklabels() / get_xticklabels()Establecer/Obtener las etiquetas de las marcas de graduación del eje x
Axes.set_yticklabels() / get_yticklabels()Establecer/Obtener las etiquetas de las marcas de graduación del eje y
Axes.get_xmajorticklabels()Obtener las etiquetas de las marcas de graduación principales del eje x
Axes.get_xminorticklabels()Obtener las etiquetas de las marcas de graduación secundarias del eje x
Axes.get_ymajorticklabels()Obtener las etiquetas de las marcas de graduación principales del eje y
Axes.get_yminorticklabels()Obtener las etiquetas de las marcas de graduación secundarias del eje y
Axes.get_xgridlines()Obtener las líneas de cuadrícula del eje x
Axes.get_ygridlines()Obtener las líneas de cuadrícula del eje y
Axes.get_xticklines()Obtener las líneas de las marcas de graduación del eje x
Axes.get_yticklines()Obtener las líneas de las marcas de graduación del eje y
Axes.xaxis_date()Configurar las marcas de graduación del eje x en formato de fecha
Axes.yaxis_date()Configurar las marcas de graduación del eje y en formato de fecha
Axes.minorticks_on()Mostrar marcas de graduación secundarias
Axes.minorticks_off()Ocultar marcas de graduación secundarias
Axes.ticklabel_format()Establecer el formato de las etiquetas de las marcas de graduación
Axes.tick_params()Ajustar parámetros de apariencia de las marcas de graduación
Axes.locator_params()Controlar parámetros del localizador de marcas de graduación

15. Unidades

MétodoDescripción de la función
Axes.convert_xunits()Convertir valores x usando el convertidor de unidades
Axes.convert_yunits()Convertir valores y usando el convertidor de unidades
Axes.have_units()Comprobar si hay un convertidor de unidades registrado

16. Agregar Artist

MétodoDescripción de la función
Axes.add_artist()Añadir cualquier objeto Artist
Axes.add_child_axes()Añadir subgráfico (subaxes)
Axes.add_collection()Añadir objeto Collection
Axes.add_container()Añadir objeto Container
Axes.add_image()Añadir objeto AxesImage
Axes.add_line()Añadir objeto Line2D
Axes.add_patch()Añadir objeto Patch
Axes.add_table()Añadir objeto Table

17. Ejes dobles y ejes compartidos

MétodoDescripción de la función
Axes.twinx()Crear eje y doble que comparte el eje x
Axes.twiny()Crear eje x doble que comparte el eje y
Axes.sharex()Compartir el eje x con otros Axes
Axes.sharey()Compartir el eje y con otros Axes
Axes.get_shared_x_axes()Obtener el objeto Grouper del eje x compartido
Axes.get_shared_y_axes()Obtener el objeto Grouper del eje y compartido

18. Posición de Axes

MétodoDescripción de la función
Axes.get_position() / set_position()Obtener/Establecer la posición y el tamaño de los Axes en la Figure
Axes.get_anchor() / set_anchor()Obtener/Establecer el ancla de los Axes (posición fija)
Axes.get_axes_locator() / set_axes_locator()Obtener/Establecer la función de callback del localizador de los Axes
Axes.get_subplotspec() / set_subplotspec()Obtener/Establecer el objeto SubplotSpec
Axes.reset_position()Restablecer la posición de los Axes a su valor original

19. Asincronía/Eventos

MétodoDescripción de la función
Axes.staleMarcar si el Artist necesita ser redibujado (propiedad)
Axes.pchanged()Marcar evento de cambio de propiedad
Axes.add_callback()Añadir callback de cambio de propiedad
Axes.remove_callback()Eliminar callback de cambio de propiedad

20. Interacción

MétodoDescripción de la función
Axes.can_pan() / can_zoom()Devuelve si se puede desplazar/escalar
Axes.set_navigate() / get_navigate()Establecer/Obtener si la barra de herramientas de navegación está activada
Axes.set_navigate_mode() / get_navigate_mode()Establecer/Obtener el modo de navegación
Axes.start_pan() / drag_pan() / end_pan()Inicio/arrastre/fin de la operación de desplazamiento
Axes.format_coord()Formatea la cadena de coordenadas mostrada en la barra de herramientas
Axes.format_cursor_data()Formatea el valor de datos en la posición del cursor
Axes.format_xdata() / format_ydata()Formatea los valores de datos x/y
Axes.mouseover()Determina si el mouse está sobre los Axes
Axes.in_axes()Determina si un punto está dentro de los Axes
Axes.contains() / contains_point()Determina si un Artist contiene un punto
Axes.get_cursor_data()Obtiene los datos en la posición del cursor
Axes.get_forward_navigation_events() / set_forward_navigation_events()Obtiene/establece el reenvío de eventos de navegación

21. Consulta de subelementos

MétodoDescripción de la función
Axes.get_children()Obtiene todos los Artist secundarios
Axes.get_images()Obtiene todos los objetos de imagen
Axes.get_lines()Obtiene todos los objetos de polilínea
Axes.findobj()Busca Artist secundarios que coincidan con la condición

22. Dibujo

MétodoDescripción de la función
Axes.draw()Renderiza los Axes
Axes.draw_artist()Dibuja un solo Artist (método de bajo nivel)
Axes.redraw_in_frame()Redibuja dentro del marco
Axes.get_window_extent()Obtiene los límites de los Axes en la ventana de visualización
Axes.get_tightbbox()Obtiene el cuadro delimitador ajustado de los Axes
Axes.get_rasterization_zorder() / set_rasterization_zorder()Establecer/Obtener el umbral de zorder para rasterización

23. Proyección (debe sobrescribirse en subclases)

MétodoDescripción de la función
Axes.nameNombre de la proyección (por ejemplo, 'rectilinear', 'polar')
Axes.get_xaxis_transform() / get_yaxis_transform()Obtiene la transformación de los ejes x/y
Axes.get_data_ratio()Obtiene la relación de aspecto de los datos
Axes.get_xaxis_text1_transform()Transformación de la etiqueta inferior del eje x
Axes.get_xaxis_text2_transform()Transformación de la etiqueta superior del eje x
Axes.get_yaxis_text1_transform()Transformación de la etiqueta izquierda del eje y
Axes.get_yaxis_text2_transform()Transformación de la etiqueta derecha del eje y

24. Otros métodos

MétodoDescripción de la función
Axes.set()Establece atributos en lote
Axes.zorderObtener/establecer zorder (atributo)
Axes.get_figure()Obtiene el objeto Figure al que pertenece
Axes.figureObjeto Figure al que pertenece (atributo)
Axes.remove()Se elimina a sí mismo de la Figure
Axes.has_data()Comprueba si hay datos
Axes.get_default_bbox_extra_artists()Obtiene los Artist que deben incluirse adicionalmente en el cálculo del cuadro delimitador
Axes.get_transformed_clip_path_and_affine()Obtiene la ruta de recorte transformada
Axes.viewLimRango de vista (atributo)
Axes.dataLimRango de datos (atributo)
Axes.spinesDiccionario de líneas de borde (atributo)

Objeto Figure - Lista completa de métodos

La Figure es el contenedor de nivel superior de todo el gráfico; gestiona todos los Axes, Artist y el diseño.

1. Agregar Axes y SubFigure

MétodoDescripción de la función
Figure.subplots()RecomendadoCrea una cuadrícula de subtramas Axes
Figure.add_subplot()Añade una sola subtrama según la posición de fila y columna
Figure.add_axes()Añade Axes en una posición y tamaño específicos
Figure.subplot_mosaic()Crea disposiciones complejas de subtramas mediante el diseño de etiquetas
Figure.add_gridspec()Añade un objeto de diseño GridSpec
Figure.subfigures()Crea una subfigura anidada
Figure.add_subfigure()Añade una sola SubFigure
Figure.axesLista de Axes (atributo)
Figure.get_axes()Obtiene todos los Axes
Figure.delaxes()Elimina los Axes especificados

2. Guardar

MétodoDescripción de la función
Figure.savefig()Guarda la Figure en un archivo

3. Anotaciones a nivel de Figure

MétodoDescripción de la función
Figure.suptitle() / get_suptitle()Establecer/Obtener el título general de la Figure
Figure.supxlabel() / get_supxlabel()Establecer/Obtener la etiqueta x a nivel de Figure
Figure.supylabel() / get_supylabel()Establecer/Obtener la etiqueta y a nivel de Figure
Figure.colorbar()Añade una barra de colores
Figure.legend()Añade una leyenda global
Figure.text()Añade texto a nivel de Figure
Figure.align_labels()Alinea las etiquetas de los ejes de todas las subtramas
Figure.align_xlabels()Alinea las etiquetas del eje x de todas las subtramas
Figure.align_ylabels()Alinea las etiquetas del eje y de todas las subtramas
Figure.align_titles()Alinea los títulos de todas las subtramas
Figure.autofmt_xdate()Rota automáticamente las etiquetas de marcas de fecha

4. Geometría de Figure

MétodoDescripción de la función
Figure.set_size_inches() / get_size_inches()Establecer/Obtener el tamaño de la Figure (en pulgadas)
Figure.set_figheight() / get_figheight()Establecer/Obtener la altura de la Figure
Figure.set_figwidth() / get_figwidth()Establecer/Obtener el ancho de la Figure
Figure.dpiResolución DPI (atributo)
Figure.set_dpi() / get_dpi()Establecer/Obtener el DPI

5. Diseño de subtramas

MétodoDescripción de la función
Figure.subplots_adjust()Ajusta manualmente el espaciado entre subtramas
Figure.set_layout_engine()Establece el motor de diseño ('constrained'/'compressed'/'none')
Figure.get_layout_engine()Obtiene el motor de diseño actual
Figure.tight_layout()Diseño compacto automático (ya no recomendado)
Figure.set_tight_layout() / get_tight_layout()Establecer/Obtener tight_layout (ya no recomendado)
Figure.set_constrained_layout() / get_constrained_layout()Establecer/Obtener constrained_layout (ya no recomendado)
Figure.set_constrained_layout_pads() / get_constrained_layout_pads()Establecer/Obtener los márgenes de constrained_layout (ya no recomendado)

6. Interacción

MétodoDescripción de la función
Figure.ginput()Obtiene puntos de coordenadas mediante clics del mouse
Figure.waitforbuttonpress()Espera una pulsación del mouse o del teclado
Figure.pick()Dispara el evento pick
Figure.add_axobserver()Añade un observador de Axes

7. Modificación de apariencia

MétodoDescripción de la función
Figure.set_frameon() / get_frameon()Establecer/Obtener si el fondo de la Figure es visible
Figure.set_linewidth() / get_linewidth()Establecer/Obtener el ancho de línea del borde de la Figure
Figure.set_facecolor() / get_facecolor()Establecer/Obtener el color de fondo de la Figure
Figure.set_edgecolor() / get_edgecolor()Establecer/Obtener el color del borde de la Figure

8. Agregar y obtener Artist

MétodoDescripción de la función
Figure.add_artist()Añade cualquier Artist
Figure.figimage()Coloca una imagen a nivel de Figure
Figure.get_children()Obtiene todos los Artist secundarios

9. Gestión de estado

MétodoDescripción de la función
Figure.clear()Limpia la Figure
Figure.gca()Obtiene los Axes actuales
Figure.sca()Establece los Axes actuales
Figure.show()Muestra la Figure
Figure.draw()Renderiza la Figure
Figure.draw_artist()Dibuja un solo Artist
Figure.draw_without_rendering()Calcula el diseño sin renderizar (para obtener información de dimensiones)
Figure.set_canvas()Establece el lienzo (canvas)
Figure.get_tightbbox()Obtiene el cuadro delimitador ajustado de la Figure
Figure.get_window_extent()Obtiene los límites de la Figure en la ventana de visualización

10. Funciones auxiliares

FunciónDescripción de la función
figaspect()Calcula el tamaño de la Figure según la relación de aspecto especificada

Objeto SubFigure - Lista de métodos

SubFigure es una subfigura lógica anidada dentro de la Figure principal; posee métodos similares a los de Figure.

Agregar Axes

MétodoDescripción de la función
SubFigure.subplots()Crea una cuadrícula de subtramas
SubFigure.add_subplot()Añade una sola subtrama
SubFigure.add_axes()Añade Axes en una posición específica
SubFigure.subplot_mosaic()Subtramas con diseño de etiquetas
SubFigure.add_gridspec()Añade GridSpec
SubFigure.subfigures()Crea una SubFigure anidada a mayor profundidad
SubFigure.add_subfigure()Añade una sola SubFigure
SubFigure.delaxes()Elimina Axes

Anotaciones

MétodoDescripción de la función
SubFigure.suptitle() / get_suptitle()Título general de SubFigure
SubFigure.supxlabel() / get_supxlabel()Etiqueta x de SubFigure
SubFigure.supylabel() / get_supylabel()Etiqueta y de SubFigure
SubFigure.colorbar()Barra de colores
SubFigure.legend()Leyenda
SubFigure.text()Texto
SubFigure.align_labels()Alinear etiquetas
SubFigure.align_xlabels() / align_ylabels()Alinear etiquetas x/y
SubFigure.align_titles()Alinear títulos

Artist y apariencia

MétodoDescripción de la función
SubFigure.add_artist()Añadir Artist
SubFigure.get_children()Obtener Artist secundarios
SubFigure.set_frameon() / get_frameon()Establecer/Obtener el borde
SubFigure.set_linewidth() / get_linewidth()Establecer/Obtener el ancho de línea
SubFigure.set_facecolor() / get_facecolor()Establecer/Obtener el color de fondo
SubFigure.set_edgecolor() / get_edgecolor()Establecer/Obtener el color del borde
SubFigure.set_dpi() / get_dpi()Establecer/Obtener el DPI

Referencia rápida de configuración de estilos

Hojas de estilo integradas

Medianteplt.style.use('name')cambiar de estilo.

Nombre del estiloDescripción del estilo
defaultEstilo predeterminado, claro y neutro
ggplotSimula el estilo de R ggplot2, fondo gris con cuadrícula blanca
seaborn-v0_8Estilo moderno similar a la librería seaborn
seaborn-v0_8-brightPaleta brillante de seaborn
seaborn-v0_8-colorblindPaleta de seaborn apta para daltonismo
seaborn-v0_8-darkEstilo oscuro de seaborn
seaborn-v0_8-dark-palettePaleta de colores oscura de seaborn
seaborn-v0_8-darkgridSeaborn oscuro con cuadrícula
seaborn-v0_8-deepTono oscuro de seaborn
seaborn-v0_8-mutedTono suave de seaborn
seaborn-v0_8-notebookEstilo notebook de seaborn
seaborn-v0_8-paperEstilo paper de seaborn
seaborn-v0_8-pastelTono pastel de seaborn
seaborn-v0_8-posterEstilo póster de seaborn
seaborn-v0_8-talkEstilo talk de seaborn
seaborn-v0_8-ticksEstilo de ticks de seaborn
seaborn-v0_8-whiteFondo blanco de seaborn
seaborn-v0_8-whitegridSeaborn blanco con cuadrícula
fivethirtyeightImita el estilo de periodismo de datos de FiveThirtyEight
dark_backgroundFondo oscuro, adecuado para presentaciones y uso nocturno
bmhEstilo Bayesian Methods for Hackers
grayscaleEstilo en escala de grises, ideal para impresión en blanco y negro
classicEstilo clásico de Matplotlib v1.x
fastEstilo simplificado, renderizado más rápido
Solarize_Light2Tema claro Solarized
tableau-colorblind10Paleta de Tableau apta para daltonismo

Configuración común de rcParams

ParámetroDescripciónValor de ejemplo
figure.figsizeTamaño predeterminado de la figura (en pulgadas)[8, 6]
figure.dpiResolución predeterminada100
figure.facecolorColor de fondo de la Figure'white'
figure.edgecolorColor del borde de la Figure'white'
font.sizeTamaño de fuente global12
font.familyFamilia de fuentes'sans-serif'
font.sans-serifLista de fuentes sans-serif['DejaVu Sans', ...]
axes.titlesizeTamaño de fuente del título'large'
axes.labelsizeTamaño de fuente de las etiquetas de los ejes'medium'
axes.gridMostrar cuadrícula por defectoFalse
axes.facecolorColor de fondo de los Axes'white'
axes.spines.topMostrar borde superiorTrue
axes.spines.rightMostrar borde derechoTrue
lines.linewidthGrosor de línea predeterminado1.5
lines.markersizeTamaño de marcador predeterminado6
lines.linestyleEstilo de línea predeterminado'-'
legend.locPosición predeterminada de la leyenda'best'
legend.fontsizeTamaño de fuente de la leyenda'medium'
xtick.labelsizeTamaño de las etiquetas de los ticks del eje x'medium'
ytick.labelsizeTamaño de las etiquetas de los ticks del eje y'medium'
savefig.dpiResolución predeterminada al guardar imágenes'figure'
savefig.bboxModo de límites al guardarNone
image.cmapColormap predeterminado'viridis'
image.interpolationMétodo de interpolación de imágenes'antialiased'

Referencia rápida de colormap (mapa de color)

CategoríaNombre del colormapEscenarios de uso
Perceptualmente uniforme (Sequential)viridis, plasma, inferno, magma, cividisDatos continuos, apto para daltonismo, primera opción recomendada
Secuencial (degradado de un solo color)Greys, Purples, Blues, Greens, Oranges, Reds, YlOrBr, YlOrRd, OrRd, PuRd, RdPu, BuPu, GnBu, PuBu, YlGnBu, PuBuGn, BuGn, YlGnDatos continuos de menor a mayor, de un solo tono
Divergente (Diverging)PiYG, PRGn, BrBG, PuOr, RdGy, RdBu, RdYlBu, RdYlGn, Spectral, coolwarm, bwr, seismicDatos bidireccionales con un punto de referencia central
Cíclico (Cyclic)twilight, twilight_shifted, hsvDatos periódicos (como ángulos, tiempo)
Cualitativo (Qualitative)Pastel1, Pastel2, Paired, Accent, Dark2, Set1, Set2, Set3, tab10, tab20, tab20b, tab20cDatos categóricos discretos
Misceláneaflag, prism, ocean, gist_earth, terrain, gist_stern, gnuplot, gnuplot2, CMRmap, cubehelix, brg, gist_rainbow, rainbow, jet, turbo, nipy_spectral, gist_ncarUsos especiales o efectos visuales

'viridis'Es el colormap predeterminado desde Matplotlib 2.0, con excelente uniformidad perceptual y apto para daltonismo; es la primera opción en la mayoría de los escenarios. Evite usar'jet'y'rainbow', ya que tienen problemas de distorsión perceptual.


Ejemplos comunes

Ejemplo 1: Gráfico de líneas básico y diagrama de dispersión

Cree un gráfico con varias curvas y anotaciones usando la interfaz explícita de Axes.

Ejemplo

import matplotlib.pyplot as plt
import numpy as np

# Generar datos: 100 puntos equidistantes entre 0 y 10
x = np.linspace(0, 10, 100)
y1 = np.sin(x)   # Función seno
y2 = np.cos(x)   # Función coseno

# Crear Figure y Axes (interfaz explícita, recomendado)
fig, ax = plt.subplots(figsize=(8, 4), layout='constrained')

# Dibujar dos líneas, configurando color, estilo de línea y etiquetas
ax.plot(x, y1, label='sin(x)', color='blue', linewidth=2)
ax.plot(x, y2, label='cos(x)', color='red', linestyle='--', linewidth=2)

# Añadir puntos de dispersión resaltados en las posiciones de los picos
peak_idx_sin = np.argmax(y1)
peak_idx_cos = np.argmax(y2)
ax.scatter(x[peak_idx_sin], y1[peak_idx_sin],
           color='blue', s=100, zorder=5)
ax.scatter(x[peak_idx_cos], y2[peak_idx_cos],
           color='red', s=100, zorder=5)

# Decoración: título, etiquetas de ejes, leyenda, cuadrícula
ax.set_title('Sine and Cosine Functions', fontsize=14)
ax.set_xlabel('x (radians)')
ax.set_ylabel('Amplitude')
ax.legend(loc='upper right')
ax.grid(True, alpha=0.3)

plt.show()
print("ejemplo: plot displayed successfully")

Ejemplo 2: Diseño de múltiples subtramas (2x2)

Muestra cómo crear diferentes tipos de subtramas en una sola Figure.

Ejemplo

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 100)

# Crear subtramas 2x2 (interfaz orientada a objetos)
fig, axes = plt.subplots(2, 2, figsize=(10, 8), layout='constrained')
fig.suptitle('Multi-panel EJEMPLO Demo', fontsize=16)

# Subtrama (0,0): gráfico de líneas
axes[0, 0].plot(x, np.sin(x), color='tab:blue', linewidth=2)
axes[0, 0].set_title('Line Plot')
axes[0, 0].set_ylabel('sin(x)')

# Subtrama (0,1): gráfico de dispersión
np.random.seed(42)
colors = np.random.rand(50)
sizes = np.random.rand(50) * 200
axes[0, 1].scatter(np.random.rand(50), np.random.rand(50),
                   c=colors, s=sizes, alpha=0.6, cmap='viridis')
axes[0, 1].set_title('Scatter Plot')

# Subtrama (1,0): gráfico de barras (con etiquetas de valor)
categories = ['A', 'B', 'C', 'D', 'E']
values = [23, 45, 56, 78, 32]
bars = axes[1, 0].bar(categories, values,
                       color='tab:green', edgecolor='white')
axes[1, 0].bar_label(bars)  # Mostrar los valores sobre las barras
axes[1, 0].set_title('Bar Chart')

# Subtrama (1,1): histograma
data = np.random.randn(1000)
axes[1, 1].hist(data, bins=30, color='tab:orange',
                edgecolor='white', alpha=0.8)
axes[1, 1].axvline(x=0, color='red', linestyle='--', linewidth=2)
axes[1, 1].set_title('Histogram')

plt.show()

Ejemplo 3: Comparación de mapa de calor y curvas de nivel

Muestra la visualización de datos 2D en la misma Figure usando imshow y contourf.

Ejemplo

import matplotlib.pyplot as plt
import numpy as np

# Crear datos de cuadrícula 2D
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)  # Valores de la función 2D

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5),
                                layout='constrained')

# Gráfico izquierdo: mapa de calor (imshow)
im = ax1.imshow(Z, extent=[-3, 3, -3, 3], origin='lower',
                cmap='viridis', aspect='auto')
ax1.set_title('Heatmap (imshow)', fontsize=14)
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
fig.colorbar(im, ax=ax1, label='Amplitude', shrink=0.8)

# Gráfico derecho: contorno relleno (contourf)
contour = ax2.contourf(X, Y, Z, levels=15, cmap='RdYlBu')
# Superponer bordes de las curvas de nivel
ax2.contour(X, Y, Z, levels=15, colors='black', linewidths=0.5)
ax2.set_title('Filled Contour (contourf)', fontsize=14)
ax2.set_xlabel('X')
ax2.set_ylabel('Y')
fig.colorbar(contour, ax=ax2, label='Amplitude', shrink=0.8)

plt.show()

Ejemplo 4: Cambio de estilo y guardado de imagen

Personalice la apariencia con hojas de estilo y rcParams, y guarde imágenes de alta calidad.

Ejemplo

import matplotlib.pyplot as plt
import numpy as np

# Usar el estilo ggplot y luego ajustar algunos parámetros
plt.style.use('ggplot')
plt.rcParams['figure.figsize'] = [8, 6]
plt.rcParams['font.size'] = 12

x = np.linspace(0, 10, 50)
y1 = np.exp(-x/3) * np.sin(2 * x)  # Onda senoidal amortiguada
y2 = np.exp(-x/3) * np.cos(2 * x)  # Onda coseno amortiguada

fig, ax = plt.subplots()
ax.plot(x, y1, 'o-', label='Damped sin', markersize=6)
ax.plot(x, y2, 's--', label='Damped cos', markersize=6)

# Anotar el primer pico
peak_idx = np.argmax(y1)
ax.annotate(f'Peak: {y1[peak_idx]:.2f}',
            xy=(x[peak_idx], y1[peak_idx]),
            xytext=(x[peak_idx] + 1.5, y1[peak_idx] + 0.15),
            arrowprops=dict(arrowstyle='->', color='gray'),
            fontsize=10)

ax.set_title('Damped Oscillation', fontsize=16)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude')
ax.legend()
ax.grid(True)

# Guardar como PNG de alta calidad a 300 DPI
fig.savefig('ejemplo_damped_oscillation.png',
            dpi=300, bbox_inches='tight')
print("ejemplo: figure saved successfully")

plt.show()

Ejemplo 5: Diseño complejo con mosaic

Utilice subplot_mosaic para crear disposiciones de subtramas no uniformes.

Ejemplo

import matplotlib.pyplot as plt
import numpy as np

# La cadena de mosaic define el diseño:
# 'A' ocupa toda la fila superior, 'B' y 'C' están abajo a la izquierda y en el centro izquierdo, 'D' ocupa la parte inferior derecha en vertical.
layout = """
A A A
B C D
"""


fig, axes = plt.subplot_mosaic(layout, figsize=(10, 6),
                                layout='constrained')
fig.suptitle('Complex Mosaic Layout (EJEMPLO)', fontsize=16)

# Panel A: gráfico de líneas (ocupa la parte superior)
x = np.linspace(0, 10, 100)
axes['A'].plot(x, np.sin(x), label='sin(x)')
axes['A'].plot(x, np.cos(x), label='cos(x)')
axes['A'].set_title('Panel A: Line Plot')
axes['A'].legend()

# Panel B: gráfico circular
sizes = [30, 25, 20, 15, 10]
labels = ['Python', 'Java', 'C++', 'Rust', 'Go']
axes['B'].pie(sizes, labels=labels, autopct='%1.1f%%',
              startangle=90)
axes['B'].set_title('Panel B: Pie Chart')

# Panel C: gráfico de barras
axes['C'].bar(['X', 'Y', 'Z'], [10, 25, 15],
              color=['#ff6b6b', '#4ecdc4', '#45b7d1'])
axes['C'].set_title('Panel C: Bar Chart')

# Panel D: mapa de calor
matrix = np.random.rand(5, 5)
im = axes['D'].imshow(matrix, cmap='Blues', aspect='auto')
axes['D'].set_title('Panel D: Heatmap')
fig.colorbar(im, ax=axes['D'])

plt.show()

Ejemplo 6: Doble eje y y subtramas incrustadas

Muestra el uso de secondary_axis, twinx e inset_axes.

Ejemplo

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(8, 5), layout='constrained')

x = np.linspace(0, 10, 100)

# Gráfico principal: dibujar dos curvas con diferentes dimensiones
ax.plot(x, np.sin(x), 'b-', label='sin(x) [amplitude]')
ax.set_xlabel('x (radians)')
ax.set_ylabel('sin(x)', color='blue')
ax.tick_params(axis='y', labelcolor='blue')

# Crear doble eje y (compartiendo el eje x)
ax2 = ax.twinx()
ax2.plot(x, np.exp(x/5), 'r--', label='exp(x/5) [growth]')
ax2.set_ylabel('exp(x/5)', color='red')
ax2.tick_params(axis='y', labelcolor='red')

# Añadir una subtrama incrustada en ax (ampliar una región local)
axins = ax.inset_axes([0.15, 0.5, 0.3, 0.35])
axins.plot(x, np.sin(x), 'b-')
axins.set_xlim(3, 5)
axins.set_ylim(-1.2, 1.2)
axins.set_title('Zoomed Region')
axins.grid(True, alpha=0.3)

# Marcar la región incrustada en el gráfico principal
ax.indicate_inset_zoom(axins, edgecolor='gray')

ax.set_title('Dual Y-Axes with Inset Zoom', fontsize=14)
plt.show()

Preguntas frecuentes

El gráfico no se muestra

Verifique si se ha llamado aplt.show()。

En backends no interactivos (como Agg) debe llamarse explícitamenteshow()。

En Jupyter Notebook, use%matplotlib inlineel comando mágico para asegurar que los gráficos se muestren incrustados.

Demasiadas marcas o en orden incorrecto

La causa común es pasar una lista de cadenas como datos (en lugar de valores numéricos o fechas/horas).

Matplotlib trata las listas de cadenas como variables categóricas; cada valor único obtiene un tick, ordenados por aparición.

Solución: convertir las cadenas en valores numéricos, por ejemplonp.asarray(data, dtype='float')onp.asarray(data, dtype='datetime64[s]')。

El chino se muestra como cuadrados

La fuente predeterminada de Matplotlib (DejaVu Sans) no incluye glifos chinos; se debe especificar una fuente compatible con chino.

Establezcaplt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', ...]y asegúrese de que la fuente correspondiente esté instalada en el sistema.

Etiquetas superpuestas o truncadas

Se recomienda al crear la Figure usarlayout='constrained'olayout='compressed'el parámetro, que maneja automáticamente la superposición de etiquetas, títulos y leyendas.

También se puede usarfig.tight_layout()ofig.subplots_adjust()para ajustar manualmente.

Diferencia entre pcolor y pcolormesh

pcolor()Crea una PolyCollection, más lento de renderizar pero más preciso.

pcolormesh()Crea un QuadMesh, más rápido de renderizar, y es la opción recomendada en la mayoría de los escenarios.

Para cuadrículas muy grandes,pcolorfast()use imshow para dibujar; es el más rápido pero con la menor precisión.


Recursos relacionados

  • Sitio web oficial de Matplotlib: matplotlib.org
  • Galería oficial: matplotlib.org/stable/gallery/index.html
  • Referencia completa de la API: matplotlib.org/stable/api/index.html
  • Guía de instalación: matplotlib.org/stable/install/index.html
  • Guía de contribución: matplotlib.org/stable/devel/index.html
Otras extensiones