""" hexbin is an axes method or pyplot function that is essentially a pcolor of a 2-D histogram with hexagonal cells. """ import numpy as np import matplotlib.pyplot as plt import matplotlib.mlab as mlab delta = 0.025 x = y = np.arange(-3.0, 3.0, delta) X, Y = np.meshgrid(x, y) Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) Z = Z2-Z1 # difference of Gaussians x = X.ravel() y = Y.ravel() z = Z.ravel() if 1: # make some points 20 times more common than others, but same mean xcond = (-1 < x) & (x < 1) ycond = (-2 < y) & (y < 0) cond = xcond & ycond xnew = x[cond] ynew = y[cond] znew = z[cond] for i in range(20): x = np.hstack((x,xnew)) y = np.hstack((y,ynew)) z = np.hstack((z,znew)) xmin = x.min() xmax = x.max() ymin = y.min() ymax = y.max() gridsize=30 plt.subplot(211) plt.hexbin(x,y, C=z, gridsize=gridsize, marginals=True) plt.axis([xmin, xmax, ymin, ymax]) cb = plt.colorbar() cb.set_label('mean value') plt.subplot(212) plt.hexbin(x,y, gridsize=gridsize) plt.axis([xmin, xmax, ymin, ymax]) cb = plt.colorbar() cb.set_label('N observations') plt.show()