You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(33) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(7) |
Feb
(44) |
Mar
(51) |
Apr
(43) |
May
(43) |
Jun
(36) |
Jul
(61) |
Aug
(44) |
Sep
(25) |
Oct
(82) |
Nov
(97) |
Dec
(47) |
2005 |
Jan
(77) |
Feb
(143) |
Mar
(42) |
Apr
(31) |
May
(93) |
Jun
(93) |
Jul
(35) |
Aug
(78) |
Sep
(56) |
Oct
(44) |
Nov
(72) |
Dec
(75) |
2006 |
Jan
(116) |
Feb
(99) |
Mar
(181) |
Apr
(171) |
May
(112) |
Jun
(86) |
Jul
(91) |
Aug
(111) |
Sep
(77) |
Oct
(72) |
Nov
(57) |
Dec
(51) |
2007 |
Jan
(64) |
Feb
(116) |
Mar
(70) |
Apr
(74) |
May
(53) |
Jun
(40) |
Jul
(519) |
Aug
(151) |
Sep
(132) |
Oct
(74) |
Nov
(282) |
Dec
(190) |
2008 |
Jan
(141) |
Feb
(67) |
Mar
(69) |
Apr
(96) |
May
(227) |
Jun
(404) |
Jul
(399) |
Aug
(96) |
Sep
(120) |
Oct
(205) |
Nov
(126) |
Dec
(261) |
2009 |
Jan
(136) |
Feb
(136) |
Mar
(119) |
Apr
(124) |
May
(155) |
Jun
(98) |
Jul
(136) |
Aug
(292) |
Sep
(174) |
Oct
(126) |
Nov
(126) |
Dec
(79) |
2010 |
Jan
(109) |
Feb
(83) |
Mar
(139) |
Apr
(91) |
May
(79) |
Jun
(164) |
Jul
(184) |
Aug
(146) |
Sep
(163) |
Oct
(128) |
Nov
(70) |
Dec
(73) |
2011 |
Jan
(235) |
Feb
(165) |
Mar
(147) |
Apr
(86) |
May
(74) |
Jun
(118) |
Jul
(65) |
Aug
(75) |
Sep
(162) |
Oct
(94) |
Nov
(48) |
Dec
(44) |
2012 |
Jan
(49) |
Feb
(40) |
Mar
(88) |
Apr
(35) |
May
(52) |
Jun
(69) |
Jul
(90) |
Aug
(123) |
Sep
(112) |
Oct
(120) |
Nov
(105) |
Dec
(116) |
2013 |
Jan
(76) |
Feb
(26) |
Mar
(78) |
Apr
(43) |
May
(61) |
Jun
(53) |
Jul
(147) |
Aug
(85) |
Sep
(83) |
Oct
(122) |
Nov
(18) |
Dec
(27) |
2014 |
Jan
(58) |
Feb
(25) |
Mar
(49) |
Apr
(17) |
May
(29) |
Jun
(39) |
Jul
(53) |
Aug
(52) |
Sep
(35) |
Oct
(47) |
Nov
(110) |
Dec
(27) |
2015 |
Jan
(50) |
Feb
(93) |
Mar
(96) |
Apr
(30) |
May
(55) |
Jun
(83) |
Jul
(44) |
Aug
(8) |
Sep
(5) |
Oct
|
Nov
(1) |
Dec
(1) |
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
(3) |
Sep
(1) |
Oct
(3) |
Nov
|
Dec
|
2017 |
Jan
|
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
(7) |
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
1
(3) |
2
(4) |
3
|
4
(2) |
5
|
6
(4) |
7
(11) |
8
(7) |
9
(9) |
10
(3) |
11
|
12
|
13
(4) |
14
(1) |
15
(24) |
16
(8) |
17
(11) |
18
(6) |
19
(2) |
20
(14) |
21
(13) |
22
(14) |
23
(3) |
24
(6) |
25
(2) |
26
|
27
(9) |
28
(18) |
29
(7) |
30
(15) |
31
(5) |
|
Tony S Yu wrote: > I was using pcolor with very large numbers and a small vrange (vmax - > vmin), and ran into a float to integer conversion problem. Large numbers > get converted to *negative* integers by astype (see numpy thread > <http://projects.scipy.org/pipermail/numpy-discussion/2008-October/038159.html>) in > colors.Colormap.__call__. > > I'm not sure if this is even worth fixing since almost no one would run > into this problem (unless you were doing something stupid, like trying > to use pcolor as a 2D zero finder :). For the error to occur, you have > to set vmin/vmax values (otherwise, the data is properly normalized > before converting to integers), and your data has to greatly exceed > these limits. Tony, Thank you. I committed the change; it looks like the cost of the extra clip is negligible, and it is nice to make the behavior correct even under extreme conditions. Eric > > Cheers, > -Tony > > > ------------------------------------------------------------------------ > > > Example of the problem: > #~~~~~~~~~~~~~ > import matplotlib.pyplot as plt > import numpy as np > > cmap = plt.cm.gray > cmap.set_over('r', 1.0) > cmap.set_under('g', 1.0) > cmap.set_bad('b', 1.0) > > eps = 1E-8 > > A = np.arange(100).reshape(10, 10) > plt.pcolor(A, vmin=50, vmax=50+eps, cmap=cmap) > # the plot should be about half red and half green (plus a black square) > # without patch, some of the red squares are filled green > plt.show() > #~~~~~~~~~~~~~ > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Manuel Metz wrote: > Please see the end of the mail for the important point !!! Thank you--I see you are way ahead of me on this. See comments below. > > Eric Firing wrote: >> Manuel, >> >> Although it doesn't hurt, I don't think it is worthwhile changing range >> to xrange. From the 2.5 docs: > [...snip...] >> Note "minimal" advantage. xrange was intended for special-case use, not >> general use. > > Eric, > > yes, I absolutely agree with you that this is only a small (minimal) > advantage, probably not worth to worry about. Nevertheless ... > >> And from Python 3.0, http://docs.python.org/dev/3.0/whatsnew/3.0.html >> xrange() renamed to range(), so range() will no longer produce a list >> but an iterable yielding integers when iterated over. > > Python 3.0 will use xrange() by default, but it is then named range(), > so from that _I_ conclude that xrange() should be used by default. You > can also see the difference by using 2to3: > > """ > for i in range(10): print i > for i in xrange(10): print i > """ > > gets converted to: > > """ > for i in range(10): print i > for i in range(10): print i > """ > > That is, because 2to3 is a clever program. But: > > """ > a = range(10) > b = xrange(10) > for i in a: print i > for i in b: print i > """ > > gets converted to > > """ > a = list(range(10)) > b = range(10) > for i in a: print(i) > for i in b: print(i) > """ > > ;-) > > As you said, it's only a minimal advantage and 2to3 is a clever code!!! > I am glad you brought the above to my attention--it completely changes my point of view. It does appear that changing to xrange now, whenever it will work (that is, when one does not *need* a list) will make the transition to Python 3 more efficient and has no disadvantage with present code. > > (THE IMPORTANT POINT) > > But this brings me to another, more important point: In the axes hist() > method, a keyword named "range" is used that is passed to the numpy > histogram() function, which has the kwarg 'range'. Now, this is not a > problem as long as the range() builtin function is not used in the > hist() method. But there are a few loops in this method that use > xrange(), so this code will be translated to range() in py3 -- and that > will be a problem. A basic example with a pseudo-code: > > """ > def foo(x, range=(1,10)): > print range > for i in xrange(x): print i > foo(10) > """ > > with 2to3 --> > > """ > def foo(x, range=(1,10)): > print(range) > for i in range(x): print(i) > foo(10) > """ > which then fails. > > One solution would be to use a different keyword argument, maybe > "binrange" instead of "range" and to throw a deprecated warning for the > old keyword ??? > Yes, I think the use of any builtin as a kwarg is a bug that should be squashed via a new kwarg with a deprecation. Similarly, use of any builtin as in internal variable should be considered a latent bug and fixed. Unfortunately, in this case, the badly-named kwarg is in numpy.histogram as well. The best thing would be to try to get the same change made in numpy so that mpl hist and numpy.histogram kwargs would stay in sync. To make matters worse, histogram has evolved in such a way that its kwargs are a confusing mess. It is too bad that when the "new" syntax was developed, the "range" kwarg was not changed at the same time. I don't know whether any more changes would be accepted now. If there is to be a new kwarg, I think I would call it "cliprange", since it is essentially used to clip the input--unless "new" is not True. It is not really a "bin range", because it can be set independently of the bins. (I have not traced the code; I am basing my statement on the docstring, so I could be wrong about what the code actually does.) Eric > Manuel > >> This implies to me that range is the preferred form, and xrange is >> intended to go away. >> >> Eric >> > [...snip...] > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Sorry, I attached the wrong file: On Oct 18, 2008, at 11:23 AM, Tony S Yu wrote: > I was using pcolor with very large numbers and a small vrange (vmax > - vmin), and ran into a float to integer conversion problem. Large > numbers get converted to *negative* integers by astype (see numpy > thread) in colors.Colormap.__call__. > > I'm not sure if this is even worth fixing since almost no one would > run into this problem (unless you were doing something stupid, like > trying to use pcolor as a 2D zero finder :). For the error to occur, > you have to set vmin/vmax values (otherwise, the data is properly > normalized before converting to integers), and your data has to > greatly exceed these limits. > > Cheers, > -Tony > <clip_vs_putmask.py> > > Example of the problem: > #~~~~~~~~~~~~~ > import matplotlib.pyplot as plt > import numpy as np > > cmap = plt.cm.gray > cmap.set_over('r', 1.0) > cmap.set_under('g', 1.0) > cmap.set_bad('b', 1.0) > > eps = 1E-8 > > A = np.arange(100).reshape(10, 10) > plt.pcolor(A, vmin=50, vmax=50+eps, cmap=cmap) > # the plot should be about half red and half green (plus a black > square) > # without patch, some of the red squares are filled green > plt.show() > #~~~~~~~~~~~~~ > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win > great prizes > Grand prize is a trip for two to an Open Source event anywhere in > the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
I was using pcolor with very large numbers and a small vrange (vmax - vmin), and ran into a float to integer conversion problem. Large numbers get converted to *negative* integers by astype (see numpy thread) in colors.Colormap.__call__. I'm not sure if this is even worth fixing since almost no one would run into this problem (unless you were doing something stupid, like trying to use pcolor as a 2D zero finder :). For the error to occur, you have to set vmin/vmax values (otherwise, the data is properly normalized before converting to integers), and your data has to greatly exceed these limits. Cheers, -Tony Example of the problem: #~~~~~~~~~~~~~ import matplotlib.pyplot as plt import numpy as np cmap = plt.cm.gray cmap.set_over('r', 1.0) cmap.set_under('g', 1.0) cmap.set_bad('b', 1.0) eps = 1E-8 A = np.arange(100).reshape(10, 10) plt.pcolor(A, vmin=50, vmax=50+eps, cmap=cmap) # the plot should be about half red and half green (plus a black square) # without patch, some of the red squares are filled green plt.show() #~~~~~~~~~~~~~
With a clear checkout building the docs fails: [...] Sphinx v0.4.2, building html trying to load pickled env... not found building [html]: targets for 348 source files that are out of date updating environment: 348 added, 0 changed, 0 removed reading... api/afm_api api/artist_api Exception occurred: File "/usr/lib/python2.5/shutil.py", line 51, in copyfile fsrc = open(src, 'rb') IOError: [Errno 2] No such file or directory: '../mpl_examples/pylab_examples/findobj_demo.py' The full traceback has been saved in /tmp/sphinx-err-X12gbJ.log, if you want to report the issue to the author. Please also report this if it was a user error, so that a better error message can be provided next time. Send reports to sph...@go.... Thanks! Building HTML failed.
Please see the end of the mail for the important point !!! Eric Firing wrote: > Manuel, > > Although it doesn't hurt, I don't think it is worthwhile changing range > to xrange. From the 2.5 docs: [...snip...] > Note "minimal" advantage. xrange was intended for special-case use, not > general use. Eric, yes, I absolutely agree with you that this is only a small (minimal) advantage, probably not worth to worry about. Nevertheless ... > And from Python 3.0, http://docs.python.org/dev/3.0/whatsnew/3.0.html > xrange() renamed to range(), so range() will no longer produce a list > but an iterable yielding integers when iterated over. Python 3.0 will use xrange() by default, but it is then named range(), so from that _I_ conclude that xrange() should be used by default. You can also see the difference by using 2to3: """ for i in range(10): print i for i in xrange(10): print i """ gets converted to: """ for i in range(10): print i for i in range(10): print i """ That is, because 2to3 is a clever program. But: """ a = range(10) b = xrange(10) for i in a: print i for i in b: print i """ gets converted to """ a = list(range(10)) b = range(10) for i in a: print(i) for i in b: print(i) """ ;-) As you said, it's only a minimal advantage and 2to3 is a clever code!!! (THE IMPORTANT POINT) But this brings me to another, more important point: In the axes hist() method, a keyword named "range" is used that is passed to the numpy histogram() function, which has the kwarg 'range'. Now, this is not a problem as long as the range() builtin function is not used in the hist() method. But there are a few loops in this method that use xrange(), so this code will be translated to range() in py3 -- and that will be a problem. A basic example with a pseudo-code: """ def foo(x, range=(1,10)): print range for i in xrange(x): print i foo(10) """ with 2to3 --> """ def foo(x, range=(1,10)): print(range) for i in range(x): print(i) foo(10) """ which then fails. One solution would be to use a different keyword argument, maybe "binrange" instead of "range" and to throw a deprecated warning for the old keyword ??? Manuel > This implies to me that range is the preferred form, and xrange is > intended to go away. > > Eric > [...snip...]