.. _10min_tut_04_plotting: {{ header }} How do I create plots in pandas? ---------------------------------- .. image:: ../../_static/schemas/04_plot_overview.svg :align: center .. ipython:: python import pandas as pd import matplotlib.pyplot as plt .. raw:: html
Data used for this tutorial:
.. raw:: html .. raw:: html .. raw:: html Apart from the default ``line`` plot when using the ``plot`` function, a number of alternatives are available to plot data. Let’s use some standard Python to get an overview of the available plot methods: .. ipython:: python [ method_name for method_name in dir(air_quality.plot) if not method_name.startswith("_") ] .. note:: In many development environments as well as IPython and Jupyter Notebook, use the TAB button to get an overview of the available methods, for example ``air_quality.plot.`` + TAB. One of the options is :meth:`DataFrame.plot.box`, which refers to a `boxplot `__. The ``box`` method is applicable on the air quality example data: .. ipython:: python @savefig 04_airqual_boxplot.png air_quality.plot.box() plt.show() .. raw:: html
To user guide For an introduction to plots other than the default line plot, see the user guide section about :ref:`supported plot styles `. .. raw:: html
.. raw:: html .. raw:: html
To user guide Some more formatting options are explained in the user guide section on :ref:`plot formatting `. .. raw:: html
.. raw:: html Each of the plot objects created by pandas is a `Matplotlib `__ object. As Matplotlib provides plenty of options to customize plots, making the link between pandas and Matplotlib explicit enables all the power of Matplotlib to the plot. This strategy is applied in the previous example: :: fig, axs = plt.subplots(figsize=(12, 4)) # Create an empty Matplotlib Figure and Axes air_quality.plot.area(ax=axs) # Use pandas to put the area plot on the prepared Figure/Axes axs.set_ylabel("NO$_2$ concentration") # Do any Matplotlib customization you like fig.savefig("no2_concentrations.png") # Save the Figure/Axes using the existing Matplotlib method. plt.show() # Display the plot .. raw:: html

REMEMBER

- The ``.plot.*`` methods are applicable on both Series and DataFrames. - By default, each of the columns is plotted as a different element (line, boxplot,…). - Any plot created by pandas is a Matplotlib object. .. raw:: html
.. raw:: html
To user guide A full overview of plotting in pandas is provided in the :ref:`visualization pages `. .. raw:: html