Hello all,
I want to adjust the wspace used in a gridspec plot on a cell by cell basis. Anyone have suggestions for how to do that? I haven't been able to find an api to do that directly. The other possibility would be to be able to embed a gridspec within a gridspec, but I'm not sure if that's possible, either.
More details: I have a plot that has two subplots arranged in a single row or column. Both plots share their relevant border axis, so I don't want space between them. They also share a color bar, however, and the only way I've been able to get that to draw in a sane way was to give it it's own axes instance in a separate cell of the gridspec. I therefore want to remove the space between the main plots without removing it for the color bar. This worked fine for the wider than tall plots since I could stack them and set hspace to 0 and have the color bar extend across rows. For the pair of plots that are more square, and therefor best put side by side, I'm having trouble finding a solution.
Thanks,
Sean
I wonder if hspace and wspace in gridspec should take arrays like width_ratios and height_ratios. Try axes_grid1 instead.
http://matplotlib.org/mpl_toolkits/axes_grid/users/overview.html#axes-grid1
(though the documentation is not the best)
I think this example does what you want:
M
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np
clf()
ax = plt.subplot(111)
im = ax.imshow(np.arange(100).reshape((10,10)))
divider = make_axes_locatable(ax)
ax1 = divider.append_axes("right", size="100%", pad=0.0)
im1 = ax1.imshow(np.arange(100).reshape((10,10)).transpose())
cax = divider.append_axes("right", size="5%", pad=0.05)
plt.colorbar(im1, cax=cax)
plt.draw()
···
On 9/18/12 6:14 PM, Sean Lake wrote:
Hello all,
I want to adjust the wspace used in a gridspec plot on a cell by cell
basis. Anyone have suggestions for how to do that? I haven't been
able to find an api to do that directly. The other possibility would
be to be able to embed a gridspec within a gridspec, but I'm not sure
if that's possible, either.
More details: I have a plot that has two subplots arranged in a
single row or column. Both plots share their relevant border axis, so
I don't want space between them. They also share a color bar,
however, and the only way I've been able to get that to draw in a
sane way was to give it it's own axes instance in a separate cell of
the gridspec. I therefore want to remove the space between the main
plots without removing it for the color bar. This worked fine for the
wider than tall plots since I could stack them and set hspace to 0
and have the color bar extend across rows. For the pair of plots that
are more square, and therefor best put side by side, I'm having
trouble finding a solution.
Sean,
I *think* the best way to do this is use multiple GridSpec objects
within a single figure. Does this example help?
http://matplotlib.org/users/gridspec.html#adjust-gridspec-layout
-paul
···
On Tue, Sep 18, 2012 at 3:14 PM, Sean Lake <odysseus9672@...287...> wrote:
Hello all,
I want to adjust the wspace used in a gridspec plot on a cell by cell basis. Anyone have suggestions for how to do that? I haven't been able to find an api to do that directly. The other possibility would be to be able to embed a gridspec within a gridspec, but I'm not sure if that's possible, either.
More details: I have a plot that has two subplots arranged in a single row or column. Both plots share their relevant border axis, so I don't want space between them. They also share a color bar, however, and the only way I've been able to get that to draw in a sane way was to give it it's own axes instance in a separate cell of the gridspec. I therefore want to remove the space between the main plots without removing it for the color bar. This worked fine for the wider than tall plots since I could stack them and set hspace to 0 and have the color bar extend across rows. For the pair of plots that are more square, and therefor best put side by side, I'm having trouble finding a solution.
Thanks,
Sean