Apply Different Styles to Each Subplot
Description:
This code creates multiple subplots where each one uses a different Matplotlib style (like 'ggplot', 'seaborn', and 'classic').
Code Explanation:
-
We made 3 subplots for Sales, Revenue, and Units.
-
Each one uses a different visual style to make it look unique:
-
'ggplot': clean, red grid style -
'seaborn-darkgrid': smooth and modern with dark grids -
'classic': default old-school look
-
-
We used
plt.style.context()to apply styles only to that subplot.
Program:
import matplotlib.pyplot as plt
import pandas as pd
# Sample data
data = {
'Date': pd.date_range(start='2024-01-01', periods=7, freq='D'),
'Sales': [100, 120, 90, 140, 160, 130, 150],
'Revenue': [1000, 1500, 1200, 1800, 2000, 1700, 1900],
'Units': [10, 12, 9, 14, 16, 13, 15]
}
df = pd.DataFrame(data)
# Create figure and axes
fig, axs = plt.subplots(3, 1, figsize=(10, 9), sharex=True)
# Apply different styles to each subplot
styles = ['ggplot', 'seaborn-v0_8-darkgrid', 'classic']
titles = ['Sales - ggplot', 'Revenue - seaborn', 'Units - classic']
colors = ['blue', 'green', 'red']
y_data = ['Sales', 'Revenue', 'Units']
# Plot each with different style
for ax, style, title, y, color in zip(axs, styles, titles, y_data, colors):
with plt.style.context(style):
ax.plot(df['Date'], df[y], marker='o', color=color)
ax.set_title(title)
ax.grid(True)
# Overall formatting
plt.suptitle('Different Styles for Each Subplot', fontsize=16)
plt.xticks(rotation=45)
plt.tight_layout(rect=[0, 0, 1, 0.95])
plt.show()
Output:

