Plotting Multiple Pandas DataFrames in Subplots
We live in a world of data. In this data-driven age, the ability to visualize data in an easily understandable way has become essential.
Pandas is one of the most popular data manipulation and analysis libraries used by data scientists and analysts. It provides a powerful interface for working with tabular data.
In this article, we’ll be exploring how to plot multiple Pandas DataFrames in subplots.
Syntax for creating subplots
Subplots are a useful way to organize multiple plots into a single figure. In Pandas, we can create subplots by using the subplots method.
Here’s the syntax for creating subplots:
fig, ax = plt.subplots(nrows, ncols)
- fig: a Figure object, which acts as the container for all of the subplots
- ax: an array of Axes objects, which represent each individual subplot
- nrows: the number of rows of subplots
- ncols: the number of columns of subplots
Example of using syntax to plot multiple DataFrames
Let’s take an example to demonstrate the use of subplots to plot multiple Pandas DataFrames. Suppose we have two DataFrames, sales and returns, and we want to plot them side by side.
Here’s how we can achieve that:
import pandas as pd
import matplotlib.pyplot as plt
# Create sample data
sales = pd.DataFrame({'Year': [2017, 2018, 2019, 2020],
'Sales': [100, 200, 300, 400]})
returns = pd.DataFrame({'Year': [2017, 2018, 2019, 2020],
'Returns': [10, 20, 30, 40]})
# Plot the data
fig, ax = plt.subplots(1, 2, figsize=(10, 5))
ax[0].plot(sales['Year'], sales['Sales'])
ax[0].set_title('Sales')
ax[1].plot(returns['Year'], returns['Returns'])
ax[1].set_title('Returns')
plt.show()
In the above example, we created subplots with 1 row and 2 columns using the subplots method. We passed the figsize parameter to set the figure size.
Now, we can plot the data using the Axes objects returned by the subplots method. We use ax[0] to access the first subplot on the left and ax[1] to access the second subplot on the right.
We then plot the data and set the title for each subplot using the set_title method.
Specifying Subplot Layout
Now that we know how to create subplots, let’s look at how to specify the subplot layout. Often, we need to create subplots with a specific arrangement, such as 2 rows and 3 columns or 3 rows and 2 columns.
We can do this by passing the nrows and ncols parameters to the subplots method. Here’s the syntax for specifying the subplot layout:
fig, ax = plt.subplots(nrows, ncols)
- fig: a Figure object, which acts as the container for all of the subplots
- ax: an array of Axes objects, which represent each individual subplot
- nrows: the number of rows of subplots
- ncols: the number of columns of subplots
Examples of different subplot arrangements
Example 1: 2 rows and 3 columns
fig, ax = plt.subplots(2, 3)
In this example, we create subplots with 2 rows and 3 columns.
Example 2: 3 rows and 2 columns
fig, ax = plt.subplots(3, 2)
In this example, we create subplots with 3 rows and 2 columns.
Example 3: 1 row and 4 columns
fig, ax = plt.subplots(1, 4)
In this example, we create subplots with 1 row and 4 columns.
Conclusion
In this article, we explored how to plot multiple Pandas DataFrames in subplots. We saw how to use the subplots method to create subplots and how to specify the subplot layout.
We looked at some examples of different subplot arrangements. By using subplots, we can efficiently visualize multiple data points in a single figure, making it easier to analyze and compare different data sets.
Pandas and Matplotlib offer a variety of tools and functions for data visualization, making it easier for us to communicate insights from complex data.
3) Share Axis Scales between Subplots
When creating subplots, it’s often useful to share the same scale on the x-axis and/or the y-axis between subplots. This can make it easier to compare the data in each subplot.
In Matplotlib, we can share the x-axis and/or the y-axis between subplots by using the sharex and sharey arguments. Here’s the syntax for sharing the x-axis and/or y-axis scales between subplots:
Syntax for sharing y-axis and x-axis scales between subplots
fig, axs = plt.subplots(nrows, ncols, sharex=True, sharey=True)
- fig: a Figure object, which acts as the container for all of the subplots
- axs: an array of Axes objects, which represent each individual subplot
- nrows: the number of rows of subplots
- ncols: the number of columns of subplots
- sharex: a Boolean value specifying whether to share the x-axis scale between subplots
- sharey: a Boolean value specifying whether to share the y-axis scale between subplots
Example of using sharey argument to force subplots to have same y-axis scale
Let’s take an example to demonstrate the use of sharey to force subplots to have the same y-axis scale. Suppose we have two DataFrames, sales and returns, and we want to plot them side by side like in the previous example, but this time we want to share the y-axis scale.
Here’s how we can achieve that:
import pandas as pd
import matplotlib.pyplot as plt
# Create sample data
sales = pd.DataFrame({'Year': [2017, 2018, 2019, 2020],
'Sales': [100, 200, 300, 400]})
returns = pd.DataFrame({'Year': [2017, 2018, 2019, 2020],
'Returns': [10, 20, 30, 40]})
# Plot the data
fig, axs = plt.subplots(1, 2, figsize=(10, 5), sharey=True)
axs[0].plot(sales['Year'], sales['Sales'])
axs[0].set_title('Sales')
axs[1].plot(returns['Year'], returns['Returns'])
axs[1].set_title('Returns')
plt.show()
In the above example, we set sharey=True when creating the subplots. This forces both subplots to have the same y-axis scale, making it easier to compare the data in each subplot.
4) Additional Resources
Learning how to plot multiple Pandas DataFrames in subplots and sharing axis scales between subplots is just the beginning when it comes to data visualization with Pandas and Matplotlib. There are many additional resources available for those looking to improve their data visualization skills.
Here are just a few:
- The official Pandas documentation provides a wealth of information on how to work effectively with Pandas data structures, including DataFrames and Series. The documentation includes a section on data visualization with Pandas, which covers many topics related to plotting in Pandas.
- The Matplotlib documentation is another great resource for learning about data visualization with Matplotlib. The documentation includes a wide variety of tutorials and examples covering everything from basic plotting to advanced visualization techniques.
- For those looking for more in-depth training, there are many online courses and bootcamps available that cover data visualization with Pandas and Matplotlib. These courses often include hands-on exercises and projects that allow students to apply what they’ve learned to real-world data sets.
- Finally, there are many blogs and online communities where data visualization enthusiasts gather to share tips, tricks, and best practices. These resources can be a great way to stay up-to-date on the latest trends and techniques in data visualization.
By making use of these resources, you can take your data visualization skills to the next level and maximize the insights you can derive from your data.
In this article, we explored how to plot multiple Pandas DataFrames in subplots and share axis scales between subplots.
We learned how to use the subplots method to create subplots, how to specify subplot layouts, and how to share the x-axis and/or y-axis scales between subplots using the sharex and sharey arguments. We also mentioned some additional resources for those looking to improve their data visualization skills, including the official Pandas and Matplotlib documentation, online courses and bootcamps, and online communities.
By incorporating these techniques and resources into your data visualization toolkit, you can effectively communicate insights from complex data sets and make data-driven decisions with greater confidence.