from __future__ import (absolute_import, division, print_function, unicode_literals) from matplotlib.externals import six import matplotlib.pyplot as plt from matplotlib.testing.decorators import image_comparison, cleanup from mpl_toolkits.axes_grid1 import make_axes_locatable from mpl_toolkits.axes_grid1 import AxesGrid from matplotlib.colors import LogNorm import numpy as np @image_comparison(baseline_images=['divider_append_axes']) def test_divider_append_axes(): # the random data np.random.seed(0) x = np.random.randn(1000) y = np.random.randn(1000) fig, axScatter = plt.subplots() # the scatter plot: axScatter.scatter(x, y) # create new axes on the right and on the top of the current axes # The first argument of the new_vertical(new_horizontal) method is # the height (width) of the axes to be created in inches. divider = make_axes_locatable(axScatter) axHistbot = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter) axHistright = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter) axHistleft = divider.append_axes("left", 1.2, pad=0.1, sharey=axScatter) axHisttop = divider.append_axes("top", 1.2, pad=0.1, sharex=axScatter) # now determine nice limits by hand: binwidth = 0.25 xymax = np.max([np.max(np.fabs(x)), np.max(np.fabs(y))]) lim = (int(xymax/binwidth) + 1) * binwidth bins = np.arange(-lim, lim + binwidth, binwidth) axHisttop.hist(x, bins=bins) axHistbot.hist(x, bins=bins) axHistleft.hist(y, bins=bins, orientation='horizontal') axHistright.hist(y, bins=bins, orientation='horizontal') axHistbot.invert_yaxis() axHistleft.invert_xaxis() axHisttop.xaxis.set_ticklabels(()) axHistbot.xaxis.set_ticklabels(()) axHistleft.yaxis.set_ticklabels(()) axHistright.yaxis.set_ticklabels(()) @cleanup def test_axesgrid_colorbar_log_smoketest(): fig = plt.figure() grid = AxesGrid(fig, 111, # modified to be only subplot nrows_ncols=(1, 1), label_mode="L", cbar_location="top", cbar_mode="single", ) Z = 10000 * np.random.rand(10, 10) im = grid[0].imshow(Z, interpolation="nearest", norm=LogNorm()) grid.cbar_axes[0].colorbar(im) if __name__ == '__main__': import nose nose.runmodule(argv=['-s', '--with-doctest'], exit=False)