La función plot estilo OO

Todas las herramientas vistas están disponibles en el estilo OO (Object Oriented). Para la generación de la figura y de uno (o más) conjuntos de ejes podemos recurrir a la función matplotlib.pyplot.subplots que, como ya hemos visto anteriormente, crea estos objetos y devuelve una referencia a la figura y al conjunto de ejes (si solo se ha creado uno) o a una lista de referencias a los conjuntos de ejes (si se han creado dos o más):

fig, ax = plt.subplots()

Una vez tenemos la referencia al conjunto de ejes ax (supongamos que es solo uno), podemos crear una gráfica ejecutando el método plot sobre ax:

g = ax.plot(np.random.randn(50).cumsum())

El método plot devuelve una lista de objetos Line2D que representan la gráfica, objetos sobre los que es posible trabajar fijando sus propiedades. Por este motivo, almacenamos el resultado del método en una variable a la que llamamos g. En este caso la lista de objetos está formada por un único elemento:

La función matplotlib.pyplot.plot en estilo Object Oriented

Podemos, por lo tanto, dar formato al objeto g[0] ejecutando los método equivalentes a algunos de los argumentos de la función plot vistos:

  • color → set_color
  • linestyle → set_linestyle
  • linewidth → set_linewidth
La función matplotlib.pyplot.plot en estilo Object Oriented

Los métodos que gestionan los marcadores son los siguientes:

  • marker → set_marker
  • markersize → set_markersize
La función matplotlib.pyplot.plot en estilo Object Oriented

Para probar los estilos de gráficas ("default", "steps"...) vamos a crear dos gráficas, una junto a otra, con los dos estilos mencionados. El método equivalente al atributo visto es:

  • drawstyle → set_drawstyle
La función matplotlib.pyplot.plot en estilo Object Oriented

Aunque lo veremos más adelante, la ejecución de la función plt.subplots(1, 2) crea una matriz de conjuntos de ejes formada por una fila y dos columnas (es decir, dos conjuntos de ejes).

Por último, nos queda probar el equivalente del atributo label:

  • label → set_label
La función matplotlib.pyplot.plot en estilo Object Oriented