Screen Link:

My Code:

plt.subplot(nrows=3, ncols=2, index=1)

Good day!

In Pandas Visualizations and Grid Charts, lesson 10. Grid charts, I don’t really understand what the number of rows and columns are doing in this line of code: plt.subplot(nrows=3, ncols=2, index=1)? What are the number of rows and columns supposed to do?

Any help will be much appreciated!

Sincerely,

Nawaz

This is clarified in the content -

Before moving on, we need to mention the table-like structure of a grid chart — it has rows and columns.The grid chart below, for instance, has three rows and two columns. Also, each plot is indexed by a number — the upper left plot has the index `1`

, its neighboring plot on the right is indexed with `2`

, and so on.

We can specify the number of rows and columns for our grid chart by using the `plt.subplot(nrows, ncols, index)`

function. For instance, `plt.subplot(3, 2, 1)`

means that we want to build the plot with index `1`

on a grid chart that has `3`

rows and `2`

columns.

Thank you for reply and thank you for your time! I am not understanding what the rows and columns are doing - maybe I am missing something.

Hello @nawaz_quraishi

Check out this to learn more:

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.subplot.html#matplotlib.pyplot.subplot

Essentially your code won’t work since the method only accepts positional arguments. This is also specified in the DQ lesson

As a sidenote, a quirk of `plt.subplot()`

is that it only takes positional arguments. If we use keyword arguments, we’ll get an error — `plt.subplot(nrows=3, ncols=2, index=1)`

raises an error.

`plt.subplot`

is used to add a plot to a figure, when adding a plot you need to specify the resulting nrows, ncols and the index (*the position of the plot, index starts at one*). This will be for all the plots you want to add in the figure.

Supposed I want to a **3X2** figure, that is, a figure with 3 rows and 2 columns (altogether forming 6 figures) as shown here:

I’ll first need to create the frames of the plots to be added.

```
plt.Figure() # For the entire output
plt.subplot(3, 2, 1) # the first plot frame in row 1
plt.subplot(3,2, 2) # second plot frame in row 1
plt.subplot(3, 2, 3) # third plot frame in row 2
.
.
. # and so on
```

All in all, we need to specify the nrow (*same for all*), ncol (same for all), and index.

Advancing in the next chapter uncovers more

Hi,

Thank you for the detailed explanation and for taking the time!

Sincerely,

Nawaz

1 Like