[Matplotlib-users] strange inconsistency

Thomas Caswell tcaswell at gmail.com
Fri Jan 8 07:23:41 EST 2016


The `colorbar` method lives on the figure, not the axes.  This is because
making the colorbar may re-arrange the layout of the axes in the parent
figure and does not anything to the draw tree of `ax`.

sm = ax.hexbin(...)
fig.colorbar(sm, ..)

should work (
http://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure.colorbar
).

Tom

On Fri, Jan 8, 2016 at 7:03 AM Neal Becker <ndbecker2 at gmail.com> wrote:

> In the following script, in the call to hexbin, I can use
> ax.hexbin
> or
> plt.hexbin
>
> but in the call to colorbar, I can only use
> plt.colorbar
> not
> ax.colorbar
>
> This seems strangely inconsistent
>
> ------------------------------
> import numpy as np
> from dill import load
>
> a,r = load (open ('test2.log.pickle', 'rb'))
> remod_2dhist = r['remod_2dhist']
>
> import matplotlib.pyplot as plt
>
> # from mpl_toolkits.mplot3d import Axes3D
> # from matplotlib import cm
> #import matplotlib as mpl
> mpl.rc('font', family='sans')
>
> fig = plt.figure()
> ax = fig.add_subplot(111)
>
> weights = []
> xs = []
> ys = []
> X, Y = remod_2dhist.get_axes()
> for i,x in enumerate (X):
>     for j,y in enumerate (Y):
>         if remod_2dhist.buckets[i,j] != 0:
>             weights.append (remod_2dhist.buckets[i,j])
>             xs.append (x)
>             ys.append (y)
>
> plt.hexbin (xs, ys, weights, mincnt=1, bins='log')
> cb = plt.colorbar()
> cb.set_label('log10(N)')
> ax.set_xlabel (r'demod $S/(N+I)$(dB) relative')
> ax.set_ylabel (r'remod mse(dB) absolute')
> plt.show()
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20160108/963e32bf/attachment.html>


More information about the Matplotlib-users mailing list