Alexandar Hansen wrote:
> Hello,
>
> I've been struggling with this for a while now and have effectively 
> two issues. One, how can I define the range over which hexbin ... 
> bins? And two, how do I change the background color of a plot?

Alexandar:  To change the background color to the lowest value in the 
colormap:

ax = plt.gca()
ax.set_axis_bgcolor(plt.cm.jet(0))


-Jeff
> The latter I thought would be trivial, but nothing I've tried has 
> worked.  Let's take the example:
>
> import numpy as np
> import matplotlib.cm <http://matplotlib.cm> as cm
> import  matplotlib.pyplot as plt
>
> n = 100000
> x = np.random.standard_normal(n)
> y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
> #xmin = x.min()
> #xmax = x.max()
> #ymin = y.min()
> #ymax = y.max()
> xmin = 0
> xmax = 10
> ymin = 0
> ymax = 30
>
> plt.hexbin(x,y, cmap=cm.jet)
> #plt.hexbin(x,y, cmap=cm.jet, extent=[xmin, xmax, ymin, ymax])
> plt.axis([xmin, xmax, ymin, ymax])
> plt.title("Hexagon binning")
> cb = plt.colorbar()
> cb.set_label('counts')
>
> plt.show()
>
>
> Let's say i'm only interested in the positive quadrant of the data, so 
> I only want to bin data in the range of 0-10 in x and 0-30 in y.  The 
> first thing I tried was to use the extent option to only bin the 
> specified range of data, but that gives these errors:
>
> [tesla:~/NMR/500-Tupp/IM7][349] HexBin.py
> Traceback (most recent call last):
>   File "HexBin.py", line 28, in <module>
>     plt.hexbin(x,y, cmap=cm.jet, extent=[xmin, xmax, ymin, ymax])
>   File "/usr/lib64/python2.5/site-packages/matplotlib/pyplot.py", line 
> 1920, in hexbin
>     ret =  gca().hexbin(*args, **kwargs)
>   File "/usr/lib64/python2.5/site-packages/matplotlib/axes.py", line 
> 5447, in hexbin
>     collection.update(kwargs)
>   File "/usr/lib64/python2.5/site-packages/matplotlib/artist.py", line 
> 548, in update
>     raise AttributeError('Unknown property %s'%k)
> AttributeError: Unknown property extent
>
>
> After that, I just set the plt.axis range to what I'm interested in. 
> However, the range not binned by hexbin shows up as white, instead of 
> the 0-count blue. I've tried adding facecolor, edgecolor, axisbg, and 
> who knows what else as part of plt.hexbin, plt.axis, and plt.savefig, 
> But most have no consequence on the plot. plt.savefig(myname, 
> facecolor='blue') successfully changed everything blue except the 
> white region within the plot.
>
> So, where am I going wrong? I'm finding myself out of options and 
> would ideally not like to trim or add false points to my data just to 
> get the axis and colors correct.
>
> Best,
> Alex
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>   


------------------------------------------------------------------------------
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to