0
0
Pandasdata~20 mins

Subplots for multiple charts in Pandas - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Subplot Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of subplot creation with pandas
What will be the output of this code snippet that creates subplots for two line charts using pandas and matplotlib?
Pandas
import pandas as pd
import matplotlib.pyplot as plt

data = {'A': [1, 3, 2, 4], 'B': [4, 2, 3, 1]}
df = pd.DataFrame(data)

axes = df.plot(subplots=True, layout=(2, 1), figsize=(6, 6))
plt.tight_layout()
plt.show()

print(type(axes))
A<class 'tuple'>
B<class 'list'>
C<class 'numpy.ndarray'>
D<class 'matplotlib.axes._subplots.AxesSubplot'>
Attempts:
2 left
💡 Hint
Think about what pandas returns when plotting multiple subplots.
data_output
intermediate
2:00remaining
Number of subplot axes created
Given this DataFrame and plotting code, how many subplot axes will be created?
Pandas
import pandas as pd
import matplotlib.pyplot as plt

data = {'X': [5, 6, 7], 'Y': [1, 2, 3], 'Z': [9, 8, 7]}
df = pd.DataFrame(data)

axes = df.plot(subplots=True, layout=(1, 3), figsize=(9, 3))
plt.close()  # Close plot to avoid display

print(len(axes.flatten()))
A3
B1
C9
D0
Attempts:
2 left
💡 Hint
Count the number of columns in the DataFrame.
🔧 Debug
advanced
2:00remaining
Identify the error in subplot layout code
What error will this code raise when trying to create subplots with pandas?
Pandas
import pandas as pd
import matplotlib.pyplot as plt

data = {'A': [1, 2], 'B': [3, 4], 'C': [5, 6]}
df = pd.DataFrame(data)

axes = df.plot(subplots=True, layout=(1, 2), figsize=(8, 4))
plt.show()
AIndexError: list index out of range
BTypeError: 'layout' argument must be a tuple of length 3
CNo error, plots display correctly
DValueError: Layout shape (1, 2) is too small for 3 subplots
Attempts:
2 left
💡 Hint
Check if the layout can fit all subplots.
visualization
advanced
2:00remaining
Effect of figsize on subplot appearance
What visual difference will you see when changing figsize from (6, 4) to (12, 8) in this subplot code?
Pandas
import pandas as pd
import matplotlib.pyplot as plt

data = {'A': [1, 4, 2, 3], 'B': [4, 1, 3, 2]}
df = pd.DataFrame(data)

axes = df.plot(subplots=True, figsize=(6, 4))
plt.show()
ANo change in subplot size or spacing
BSubplots become larger and more spaced out with figsize (12, 8)
CSubplots become smaller and closer together with figsize (12, 8)
DSubplots overlap and become unreadable
Attempts:
2 left
💡 Hint
Figsize controls the overall figure size in inches.
🚀 Application
expert
3:00remaining
Creating a 2x2 grid of subplots with different chart types
Which code correctly creates a 2x2 grid of subplots from this DataFrame, plotting a line, bar, histogram, and scatter plot respectively?
Pandas
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

data = {'A': np.random.randint(1, 10, 10),
        'B': np.random.randint(10, 20, 10),
        'C': np.random.randn(10),
        'D': np.random.randn(10)}
df = pd.DataFrame(data)
A
fig, axes = plt.subplots(2, 2, figsize=(10, 8))
df['A'].plot(ax=axes[0,0], kind='line')
df['B'].plot(ax=axes[0,1], kind='bar')
df['C'].plot(ax=axes[1,0], kind='hist')
df.plot.scatter(x='C', y='D', ax=axes[1,1])
plt.tight_layout()
plt.show()
B
fig, axes = plt.subplots(2, 2)
df['A'].plot(kind='line', ax=axes[0,0])
df['B'].plot(kind='bar', ax=axes[0,1])
df['C'].plot(kind='hist', ax=axes[1,0])
df['D'].plot(kind='scatter', ax=axes[1,1])
plt.show()
C
fig, axes = plt.subplots(4, 1)
df['A'].plot(kind='line')
df['B'].plot(kind='bar')
df['C'].plot(kind='hist')
df.plot.scatter(x='C', y='D')
plt.show()
D
fig, axes = plt.subplots(2, 2)
df.plot(kind='line', ax=axes[0])
df.plot(kind='bar', ax=axes[1])
df.plot(kind='hist', ax=axes[2])
df.plot.scatter(x='C', y='D', ax=axes[3])
plt.show()
Attempts:
2 left
💡 Hint
Remember scatter plots require x and y arguments and axes indexing for 2D arrays.