# How do I change the figure size with subplots?

If you already have the figure object use:

`f.set_figheight(15)f.set_figwidth(15)`

But if you use the .subplots() command (as in the examples you're showing) to create a new figure you can also use:

`f, axs = plt.subplots(2,2,figsize=(15,15))`

Alternatively, create a `figure()`

object using the `figsize`

argument and then use `add_subplot`

to add your subplots. E.g.

`import matplotlib.pyplot as pltimport numpy as npf = plt.figure(figsize=(10,3))ax = f.add_subplot(121)ax2 = f.add_subplot(122)x = np.linspace(0,4,1000)ax.plot(x, np.sin(x))ax2.plot(x, np.cos(x), 'r:')`

Benefits of this method are that the syntax is closer to calls of `subplot()`

instead of `subplots()`

. E.g. subplots doesn't seem to support using a `GridSpec`

for controlling the spacing of the subplots, but both `subplot()`

and `add_subplot()`

do.

In addition to the previous answers, here is an option to set the size of the figure and the size of the subplots within the figure individually by means of `gridspec_kw`

:

`import matplotlib.pyplot as pltimport numpy as npimport pandas as pd#generate random datax,y=range(100), range(10)z=np.random.random((len(x),len(y)))Y=Y=[z[i].sum() for i in range(len(x))]z=pd.DataFrame(z).unstack().reset_index()#Plot datafig, axs = plt.subplots(2,1,figsize=(16,9), gridspec_kw={'height_ratios': [1, 2]})axs[0].plot(Y)axs[1].scatter(z['level_1'], z['level_0'],c=z[0])`