La función matplotlib.pyplot.axes es la segunda alternativa que vamos a ver. Esta función añade un conjunto de ejes en la figura actual, y fija el nuevo conjunto de ejes como actual (o, con otras palabras, lo marca como "activo"). Si no existe una figura, la crea y la marca como actual:
Esta función -como se ha comentado- añade un conjunto de ejes a la figura. Si en ésta ya existían otros ejes, se mostrarán en las posiciones y tamaños que fijemos. Para fijar la posición y tamaño de un eje podemos pasar una tupla a la función como primer argumento. Esta tupla contendrá la siguiente información:
[Posición izquierda, posición derecha, ancho, alto]
Veamos esto en funcionamiento. Supongamos que tenemos dos conjuntos de valores y1 e y2 (en este ejemplo generados aleatoriamente) y un conjunto de ejes creados con la función plt.axes en el que creamos una gráfica mostrando la distribución de y1 con la función plt.plot:
Si, en el bloque anterior, antes de mostrar la gráfica con plt.show, añadiésemos un segundo conjunto de ejes especificando su posición y tamaño, tendríamos el siguiente resultado:
La segunda gráfica la hemos creado a partir del punto (0, 0) con ancho y alto de 0.5 (estos valores van referidos al tamaño de la figura. Es decir, un ancho de 1 equivale al ancho de la figura).
Si quisiéramos mostrar un conjunto de ejes encima del otro o distribuidos en filas y columnas, deberíamos crearlos con las posiciones y tamaños adecuados, para lo que resulta mucho más práctico usar la función plt.subplots ya vista. Sin embargo, para solapar las gráficas o mostrarlas en posiciones o con tamaños arbitrarios, la función plt.axes se muestra extremandamente práctica.
La función plt.axes también admite los parámetros sharex y sharey que controlan la compartición de los ejes. Y también admite el parámetro label que asigna una etiqueta al conjunto de ejes generados.