matplotlib es la librería de visualización más popular de Python. Su primera versión, creada por John D. Hunter, se remonta al año 2003, y esto puede ser considerado a la vez tanto una fortaleza como una debilidad. Es cierto que, con el tiempo, matplotlib se ha instaurado como la librería de visualización de referencia y, de hecho, otras muchas librerías han desarrollado sus herramientas de visualización sobre matplotlib: seaborn, ggplot... incluso pandas basa en matplotlib sus herramientas de visualización (los DataFrames poseen el método plot importado de matplotlib que permite crear y personalizar con cierta facilidad una gráfica con los datos contenidos en el DataFrame). Pero también es cierto que, con el paso de los años, matplotlib ha sido superada por las librerías mencionadas (seaborn, ggplot) y por otras (Bokeh, Plotly) que ofrecen visualizaciones más atractivas o unas interfaces más coherentes y amigables. En cualquier caso, es esa dependencia que tienen muchas librerías con respecto a matplotlib lo que hace más que conveniente el conocimiento de matplotlib: las librerías de más alto nivel diseñadas sobre ésta no siempre ofrecen toda la funcionalidad que necesitamos y, cuando queremos afinar en el diseño de una visualización, frecuentemente no nos queda más remedio que acudir directamente a matplotlib.
Otra de las fortalezas de matplotlib es su compatibilidad con diferentes sistemas operativos y entornos en los que se ejecuta, lo que ayudó a su rápida adopción por parte de la comunidad.
De lo dicho que deduce que matplotlib es una librería de bajo nivel, muy potente y extensa pero que puede resultar un tanto confusa al principio. Ofrece herramientas para la creación de visualizaciones en 2D, aunque se completa con el uso de otros add-ons que permiten la generación de gráficas 3D (mplot3d) y mapas (basemap).
Podemos acceder a la documentación completa en el sitio web oficial de matplotlib:
La mayoría de las funciones de matplotlib están localizadas en la sublibrería pyplot, que suele importarse con el alias plt:
import matplotlib.pyplot as plt
En algún caso es necesario trabajar directamente con la librería matplotlib, que suele importarse con el alias mpl:
import matplotlib as mpl
Lógicamente, para hacer uso de cualquier función ofrecida por la librería matplotlib.pyplot, ésta deberá ser importada usando la instrucción comentada. En los ejemplos mostrados a lo largo de este tutorial no se muestra dicha instrucción, pero es siempre la primera que se ejecuta en la libreta Jupyter:
Como puede apreciarse, además de importar matplotlib importamos también la librería NumPy -ya se ha comentado que la utilizaremos con sencillos arrays y para generar conjuntos de datos aleatorios-, y fijamos una semilla para el generador de números aleatorios de esta librería. También importamos la librería pandas pues haremos uso de dataframes en algunos de los ejemplos.