Allow axes to be provided to imshow and fix colorbar

Allow axes to be provided to imshow and fix colorbar

Allow axes to be provided to imshow and fix colorbar

Allow axes to be provided to imshow and fix colorbar

Use tight layout by default

Try and fix appveyor issue

Handle deprecation warning on appveyor

Pin the colorbar to the image using box-forced

Fix tests again

Update function signature

Update function signature

Fix imshow call

Fix docstring with utf characters

Remove kwargs
This commit is contained in:
Steven Silvester
2015-12-25 15:12:53 -06:00
parent f3392bc4f5
commit 0d73999cfd
3 changed files with 24 additions and 11 deletions
+5 -3
View File
@@ -18,8 +18,8 @@ addons:
packages:
- ccache
- libfreeimage3
- texlive
- texlive-latex-extra
- texlive
- texlive-latex-extra
- dvipng
- python-qt4
env:
@@ -53,7 +53,9 @@ before_install:
install:
- python setup.py develop
script: tools/travis_script.sh
script:
- tools/travis_script.sh
- grep -irn "R385" doc/build
after_success:
- coveralls
+16 -6
View File
@@ -2,6 +2,7 @@ from collections import namedtuple
import numpy as np
import warnings
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
from ...util import dtype as dtypes
from ...exposure import is_low_contrast
from ...util.colormap import viridis
@@ -110,7 +111,7 @@ def _get_display_range(image):
return lo, hi, cmap
def imshow(im, *args, **kwargs):
def imshow(im, ax=None, show_cbar=None, **kwargs):
"""Show the input image and return the current axes.
By default, the image is displayed in greyscale, rather than
@@ -131,8 +132,11 @@ def imshow(im, *args, **kwargs):
----------
im : array, shape (M, N[, 3])
The image to display.
*args, **kwargs : positional and keyword arguments
ax: `matplotlib.axes.Axes`, optional
The axis to use for the image, defaults to plt.gca().
show_cbar: boolean, optional.
Whether to show the colorbar (used to override default behavior).
**kwargs : Keyword arguments
These are passed directly to `matplotlib.pyplot.imshow`.
Returns
@@ -147,9 +151,15 @@ def imshow(im, *args, **kwargs):
kwargs.setdefault('cmap', cmap)
kwargs.setdefault('vmin', lo)
kwargs.setdefault('vmax', hi)
ax_im = plt.imshow(im, *args, **kwargs)
if cmap != _default_colormap:
plt.colorbar()
ax = ax or plt.gca()
ax_im = ax.imshow(im, **kwargs)
if (cmap != _default_colormap and show_cbar is not False) or show_cbar:
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
plt.colorbar(ax_im, cax=cax)
ax.set_adjustable('box-forced')
ax.get_figure().tight_layout()
return ax_im
imread = plt.imread
+3 -2
View File
@@ -78,7 +78,7 @@ def test_low_dynamic_range():
def test_outside_standard_range():
plt.figure()
with expected_warnings(["out of standard range"]):
with expected_warnings(["out of standard range|CObject type is marked"]):
ax_im = io.imshow(im_hi)
assert ax_im.get_clim() == (im_hi.min(), im_hi.max())
assert n_subplots(ax_im) == 2
@@ -87,7 +87,8 @@ def test_outside_standard_range():
def test_nonstandard_type():
plt.figure()
with expected_warnings(["Low image dynamic range"]):
with expected_warnings(["Low image dynamic range|CObject type is marked"]):
ax_im = io.imshow(im64)
assert ax_im.get_clim() == (im64.min(), im64.max())
assert n_subplots(ax_im) == 2