plt.figure(figsize=(15, 12))
plt.subplots_adjust(hspace=0.2)
plt.suptitle("Daily closing prices", fontsize=18, y=0.95)
# set number of columns (use 3 to demonstrate the change)
ncols = 3
# calculate number of rows
nrows = len(tickers) // ncols + (len(tickers) % ncols > 0)
# loop through the length of tickers and keep track of index
for n, ticker in enumerate(tickers):
# add a new subplot iteratively using nrows and cols
ax = plt.subplot(nrows, ncols, n + 1)
# filter df and plot ticker on the new subplot axis
df[df["ticker"] == ticker].plot(ax=ax)
# chart formatting
ax.set_title(ticker.upper())
ax.get_legend().remove()
ax.set_xlabel("")