Plotting IVT data

My python code works, however, my plots are way too small. I’ve adjusted the figsize many times and nothing changes it. Any advice would be great.

import xarray as xr
import numpy as np
from datetime import datetime
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import matplotlib.patches as mpatches
import pandas as pd
from geospatial_utils import area_of_interest


ds = xr.open_dataset('ERA5_hourlyIVT_198102.nc')
print(ds)

proj = ccrs.LambertConformal(central_longitude=-110.0, central_latitude=35.0)

fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111, projection=proj)

ax.stock_img()
ax.add_patch(mpatches.Rectangle(xy=[-170, 20], width=120, height=45, facecolor='red', alpha=0.2, transform=ccrs.PlateCarree()))
ax.set_extent([-180, -30, 10, 70], crs=ccrs.PlateCarree())
ax.gridlines()
ax.coastlines()

plt.show()

lat = ds['lat'].values
lon = ds['lon'].values
time = ds['time'].values
ivt = ds['ivt'].values
time_ind = pd.date_range(start = '1981-02-09T00:00.00', end = '1981-02-10T00:00.00', freq = '1h')
time_ind_2 = pd.date_range(start = '1981-02-10T00:00.00', end = '1981-02-11T00:00.00', freq = '1h')
time_ind_3 = pd.date_range(start = '1981-02-11T00:00.00', end = '1981-02-12T00:00.00', freq = '1h')

ar = ds.sel(time=time_ind)['ivt'].mean(dim='time').values # units of m**2 / s**2
ar_1 = ds.sel(time=time_ind_2)['ivt'].mean(dim='time').values # units of m**2 / s**2
ar_2 = ds.sel(time=time_ind_3)['ivt'].mean(dim='time').values # units of m**2 / s**2

[X, Y] = np.meshgrid(lon, lat)
print(X.shape, Y.shape)

proj = ccrs.Mercator() # You can use other projections, just make sure that PlateCarree is used in any transform arguments below.

fig, axs = plt.subplots(1,3, figsize=(10, 5), subplot_kw = {'projection': ccrs.AlbersEqualArea(central_longitude=-154, central_latitude=50, standard_parallels=(55, 65))})

plt1 = axs[0].contourf(X, Y, ar, transform=ccrs.PlateCarree()) #contourf fills the image
print(plt1)
plt2 = axs[1].contourf(X, Y, ar_1, transform=ccrs.PlateCarree())
plt3 = axs[2].contourf(X, Y, ar_2, transform=ccrs.PlateCarree())

axs[0].set_boundary(area_of_interest(axs[0], west = -170, east = -120, north = 75, south = 45))
axs[1].set_boundary(area_of_interest(axs[1], west = -170, east = -120, north = 75, south = 45))
axs[2].set_boundary(area_of_interest(axs[2], west = -170, east = -120, north = 75, south = 45))

#axs[0].clabel(plt1, np.linspace(480, 600, 11), inline=True, fmt='%d', fontsize=14)
#axs[1].clabel(plt2, np.linspace(480, 600, 11), inline=True, fmt='%d', fontsize=14)
#axs[2].clabel(plt3, np.linspace(480, 600, 11), inline=True, fmt='%d', fontsize=14)
axs[0].set_title('IVT\n 9 February 1981', fontsize=16)
axs[1].set_title('IVT\n 10 February 1981', fontsize=16)
axs[2].set_title('IVT\n 11 February 1981', fontsize=16)

# Add some additional borders (optional)
states = cfeature.NaturalEarthFeature(category='cultural', name='admin_1_states_provinces_lines', scale='50m', facecolor='none')
axs[0].add_feature(cfeature.LAND)
axs[1].add_feature(cfeature.LAND)
axs[2].add_feature(cfeature.LAND)
axs[0].add_feature(cfeature.LAKES, facecolor='none', edgecolor='black')
axs[1].add_feature(cfeature.LAKES, facecolor='none', edgecolor='black')
axs[2].add_feature(cfeature.LAKES, facecolor='none', edgecolor='black')
axs[0].add_feature(cfeature.COASTLINE)
axs[1].add_feature(cfeature.COASTLINE)
axs[2].add_feature(cfeature.COASTLINE)
axs[0].add_feature(cfeature.BORDERS)
axs[1].add_feature(cfeature.BORDERS)
axs[2].add_feature(cfeature.BORDERS)
axs[0].add_feature(states, edgecolor='black')
axs[1].add_feature(states, edgecolor='black')
axs[2].add_feature(states, edgecolor='black')

# Format the gridlines (optional)
gl = ax.gridlines(crs=ccrs.PlateCarree(), draw_labels=True, linewidth=2, color='gray', alpha=0.5, linestyle='--')
gl.xlabels_top = False
gl.ylabels_right = False
gl.xlines = True; gl.xlocator = mticker.FixedLocator(np.linspace(-170, -50, 13)); gl.xformatter = LONGITUDE_FORMATTER; gl.xlabel_style = {'size':16, 'color':'black'}
gl.ylines = True; gl.ylocator = mticker.FixedLocator(np.linspace(20, 65, 10)); gl.yformatter = LATITUDE_FORMATTER; gl.ylabel_style = {'size':16, 'color':'black'}

# Plot the colorbar
cbar_ax = fig.add_axes([0, 0, 0.1, 0.1]) # Dummy values prior to finetuning the cbar position
pos = ax.get_position() # Get the axes position
cbar_ax.set_position([pos.x0 + pos.width + 0.01, pos.y0, 0.04, pos.height])
cbar = plt.colorbar(plt1, cax=cbar_ax)
cbar_ax.tick_params(labelsize=16)

plt.show()