2010/3/30 Ariel Rokem <aro...@berkeley.edu>:
> I ended up with the code below, using Chloe's previously posted
> 'subcolormap' and, in order to make the colorbar nicely attached to the main
> imshow plot, I use make_axes_locatable in order to generate the colorbar
> axes. I tried it out with a couple of use-cases and it seems to do what it
> is supposed to, (with ticks only for the edges of the range of the data and
> 0, if that is within that range), but I am not entirely sure. Do you think
> it works?

I think even Chloe would agree that you should avoid the subcolormap()
if you can.  I tried to create an as minimalistic as possible but
working self-contained example, please find the code also attached as
.py file:

from matplotlib import pyplot as plt
import matplotlib as mpl
from mpl_toolkits.axes_grid import make_axes_locatable
import numpy as np

fig = plt.figure()
ax_im = fig.add_subplot(1, 1, 1)
divider = make_axes_locatable(ax_im)
ax_cb = divider.new_vertical(size = '20%', pad = 0.2, pack_start = True)
fig.add_axes(ax_cb)

x = np.linspace(-5, 5, 101)
y = x
Z = np.sin(x*y[:,None]).clip(-1,1-0.1)

# Leave out if you want:
Z += 2

min_val = Z.min()
max_val = Z.max()
bound = max(np.abs(Z.max()), np.abs(Z.min()))

patch = ax_im.imshow(Z, origin = 'upper', interpolation = 'nearest',
        vmin = -bound, vmax = bound)

cb = fig.colorbar(patch, cax = ax_cb, orientation = 'horizontal',
        norm = patch.norm,
        boundaries = np.linspace(-bound, bound, 256),
        ticks = [min_val, 0, max_val],
        format = '%.2f')

plt.show()

Friedrich

Attachment: cbar.py
Description: Binary data

<<attachment: cbar.png>>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to