There are several (example) SO posts dealing with how to use GridSpec
with subplotting in general. What i am trying to achieve to no avail, is to allow the use of GridSpec
with subplots
, something like this, Where i can replace the actual Array and list indexes with some loop controlled index :
gs = gridspec.GridSpec(4, 1, height_ratios=[2, 2, 1, 1]) tPlot, axes = plt.subplots(4, sharex=True, sharey=False) tPlot.suptitle(node, fontsize=20) axes[0].plot(targetDay[0], gs[0]) axes[1].plot(targetDay[1], gs[1]) axes[2].scatter(targetDay[2], gs[2]) axes[3].plot(targetDay[3], gs[3])
Needless to say that this code does not work, it just an example.
plt. subplots() , created a grid (2 rows and 3 columns). The function returned the figure object (stored in fig ) that will hold all the subplots, as well as all the individual axes (stored in axes ).
To combine several matplotlib axes subplots into one figure, we can use subplots() method with nrow=2.
We can use the plt. subplots_adjust() method to change the space between Matplotlib subplots. The parameters wspace and hspace specify the space reserved between Matplotlib subplots. They are the fractions of axis width and height, respectively.
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()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With