Rather than calling gridspec.GridSpec before subplots, you can send the kwargs to GridSpec from within your subplots call, using the gridspec_kw argument. From the docs:
gridspec_kw: dictDict with keywords passed to the GridSpec constructor used to create the grid the subplots are placed on.
So, for example:
import matplotlib.pyplot as plt
tPlot, axes = plt.subplots(
nrows=4, ncols=1, sharex=True, sharey=False,
gridspec_kw={'height_ratios':[2,2,1,1]}
)
tPlot.suptitle('node', fontsize=20)
axes[0].plot(range(10),'ro-')
axes[1].plot(range(10),'bo-')
axes[2].plot(range(10),'go-')
axes[3].plot(range(10),'mo-')
plt.show()
