Re: [matplotlib-devel] Bug in 'weights' in axes.hist
On Sun, Jul 25, 2010 at 3:51 PM, Benjamin Root ben.r...@ou.edu wrote: On Tue, Jul 20, 2010 at 9:21 AM, Jeff Klukas klu...@wisc.edu wrote: Hello, The documentation for hist seems to indicate that you should be able to send a list of values through the 'weights' parameter in axes.hist, and this worked in previous versions. In 1.0, however, this produces an error. I've attached a diff (also pasted below) that I believe produces the expected behavior. It can be tested with: plt.hist([1,2,3], weights=[1,2,3]) The above fails in the development version, but works with the diff. Could someone add this fix? Thanks, Jeff || Jeff Klukas, Research Assistant, Physics || University of Wisconsin -- Madison || jeff.klu...@gmail | jeffyklu...@aim | jeffklu...@skype || http://klukas.web.cern.ch/ Index: lib/matplotlib/axes.py === --- lib/matplotlib/axes.py (revision 8565) +++ lib/matplotlib/axes.py (working copy) @@ -7587,7 +7587,12 @@ else: raise ValueError(weights must be 1D or 2D) else: -w = [np.array(wi) for wi in weights] +try: +weights[0][0] +except TypeError: +w = [np.array(weights)] +else: +w = [np.array(wi) for wi in weights] if len(w) != nx: raise ValueError('weights should have the same shape as x') Good catch, Jeff. Looking over the code, looks like both the input data, x, and the weights get similar pre-processing done to ready it for histogramming. It appears that a fix was made to how x was being processed, but the same was not done to weights. I have a patch that fixes the pre-processing of weights, and also adds comments to both blocks of code to remind future developers to make sure changes are made to both chunks of code. The functional part of the change was to check if the first element of weights was an iterable or not. Before, the weights array as in the given example would be considered 1-element weights for 3 datasets, rather than 3-element weights for 1 dataset. Ben Root Re-pinging on my proposed patch. Also, should it go into just the trunk, or should it also go into the branch? Ben Root -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Re: [matplotlib-devel] Bug in 'weights' in axes.hist
On 07/29/2010 09:31 AM, Benjamin Root wrote: [...] Good catch, Jeff. Looking over the code, looks like both the input data, x, and the weights get similar pre-processing done to ready it for histogramming. It appears that a fix was made to how x was being processed, but the same was not done to weights. I have a patch that fixes the pre-processing of weights, and also adds comments to both blocks of code to remind future developers to make sure changes are made to both chunks of code. The functional part of the change was to check if the first element of weights was an iterable or not. Before, the weights array as in the given example would be considered 1-element weights for 3 datasets, rather than 3-element weights for 1 dataset. Ben Root Re-pinging on my proposed patch. Also, should it go into just the trunk, or should it also go into the branch? Ben, Go ahead, trunk and branch, since it is a bugfix. Thank you. Eric Ben Root -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Re: [matplotlib-devel] Bug in 'weights' in axes.hist
On Thu, Jul 29, 2010 at 3:39 PM, Eric Firing efir...@hawaii.edu wrote: On 07/29/2010 09:31 AM, Benjamin Root wrote: [...] Good catch, Jeff. Looking over the code, looks like both the input data, x, and the weights get similar pre-processing done to ready it for histogramming. It appears that a fix was made to how x was being processed, but the same was not done to weights. I have a patch that fixes the pre-processing of weights, and also adds comments to both blocks of code to remind future developers to make sure changes are made to both chunks of code. The functional part of the change was to check if the first element of weights was an iterable or not. Before, the weights array as in the given example would be considered 1-element weights for 3 datasets, rather than 3-element weights for 1 dataset. Ben Root Re-pinging on my proposed patch. Also, should it go into just the trunk, or should it also go into the branch? Ben, Go ahead, trunk and branch, since it is a bugfix. Thank you. Eric Done in r8595 and r8596. As a side-note, it looks like various files that have been changed due to svnmerge.py are still showing themselves as having their properties modified. Is this ok? Ben Root -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Re: [matplotlib-devel] Bug in 'weights' in axes.hist
On 07/29/2010 01:17 PM, Benjamin Root wrote: On Thu, Jul 29, 2010 at 3:39 PM, Eric Firing efir...@hawaii.edu mailto:efir...@hawaii.edu wrote: On 07/29/2010 09:31 AM, Benjamin Root wrote: [...] Good catch, Jeff. Looking over the code, looks like both the input data, x, and the weights get similar pre-processing done to ready it for histogramming. It appears that a fix was made to how x was being processed, but the same was not done to weights. I have a patch that fixes the pre-processing of weights, and also adds comments to both blocks of code to remind future developers to make sure changes are made to both chunks of code. The functional part of the change was to check if the first element of weights was an iterable or not. Before, the weights array as in the given example would be considered 1-element weights for 3 datasets, rather than 3-element weights for 1 dataset. Ben Root Re-pinging on my proposed patch. Also, should it go into just the trunk, or should it also go into the branch? Ben, Go ahead, trunk and branch, since it is a bugfix. Thank you. Eric Done in r8595 and r8596. As a side-note, it looks like various files that have been changed due to svnmerge.py are still showing themselves as having their properties modified. Is this ok? That seems to be the way svnmerge works--it almost always generates an alarming list of property changes. Eric Ben Root -- The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm ___ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel