Reputation: 2632
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.
Upvotes: 36
Views: 42750
Reputation: 69116
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()
Upvotes: 71