I’d like to display a colorbar representing an image’s raw values along side a matplotlib imshow subplot which displays that image, normalized.
I’ve been able to draw the image and a colorbar successfully like this, but the colorbar min and max values represent the normalized (0,1) image instead of the raw (0,99) image.
f = plt.figure()
# create toy image
im = np.ones((100,100))
for x in range(100):
im[x] = x
# create imshow subplot
ax = f.add_subplot(111)
result = ax.imshow(im / im.max())
# Create the colorbar
axc, kw = matplotlib.colorbar.make_axes(ax)
cb = matplotlib.colorbar.Colorbar(axc, result)
# Set the colorbar
result.colorbar = cb
If someone has a better mastery of the colorbar API, I’d love to hear from you.
Thanks!
Adam
It looks like you passed the wrong object to the colorbar constructor.
This should work:
The snippet above is based on the code in your answer; here’s a complete, stand-alone example:
As i suggested in the comment above, i would choose a cleaner namespace that what you have–e.g., there are modules with the same name in both NumPy and Matplotlib.
In particular, i would use this import statement to import Matplotlib’s “core” plotting functionality:
Of course, this does not get the entire matplotlib namespace (which is really the point of this import statement) though this is usually all that you’ll need.