SourceForge logo
SourceForge logo
Menu

matplotlib-devel — matplotlib developers

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
(1)
2
(7)
3
4
5
(16)
6
(11)
7
8
(1)
9
(4)
10
(10)
11
12
(4)
13
(4)
14
(5)
15
(5)
16
(11)
17
(3)
18
(2)
19
(5)
20
(2)
21
(5)
22
(2)
23
(2)
24
25
26
(4)
27
(8)
28
(9)
29
(9)
30
(5)
31
(1)

Showing 4 results of 4

From: Michael D. <md...@st...> - 2009年01月26日 18:46:21
Okay -- I think I've at least narrowed it down to a cause. Agg uses 
fixed-point arithmetic to render at the low-level -- by default it uses 
24.8 (i.e. 24 integer bits and 8 fractional bits). Therefore, it can 
only handle pixel coordinates in the range -2^23 to 2^23. Both of the 
provided examples, after the data has been scaled, draw outside of this 
range, which results in integer overflow, hence things going in the 
wrong direction etc.
We could change the fixed point in agg_basics.h, but I hesitate to do 
so, as it's at the expense of fine detail. We could possibly move to 
64-bits, but I'm not sure how easy that would be, or what the impact 
might be on 32-bit platforms.
 
//----------------------------------------------------poly_subpixel_scale_e
 // These constants determine the subpixel accuracy, to be more precise,
 // the number of bits of the fractional part of the coordinates.
 // The possible coordinate capacity in bits can be calculated by 
formula:
 // sizeof(int) * 8 - poly_subpixel_shift, i.e, for 32-bit integers and
 // 8-bits fractional part the capacity is 24 bits.
 enum poly_subpixel_scale_e
 {
 poly_subpixel_shift = 8, 
//----poly_subpixel_shift
 poly_subpixel_scale = 1<<poly_subpixel_shift, 
//----poly_subpixel_scale
 poly_subpixel_mask = poly_subpixel_scale-1, 
//----poly_subpixel_mask
 };
One thing I will look into is whether the line simplification algorithm 
can be extended to actually clip the lines when they go outside of the 
image range. At the moment, it does some work to reduce the number of 
points outside of the image, but it always draws at least one point 
outside at its original location. It looks like Agg has some of the 
pieces necessary to do this -- whether it's feasible to integrate that 
into our existing line simplification algorithm remains to be seen.
Mike
Michael Droettboom wrote:
> Thanks for this.
>
> I believe both of these examples illustrate a shortcoming in Agg when 
> the distance between two points on either end of a line is too great.
>
> I'll do some digging around and see what may be causing this and if any 
> limits can be adjusted -- I may not get to this today, however.
>
> Mike
>
> João Luís Silva wrote:
> 
>> Jan Müller wrote:
>> 
>> 
>>> Hi,
>>>
>>> The simple code snippet at the end of this mail should plot a single line. 
>>>
>>> 
>>> 
>> I can confirm this bug on Ubuntu running matplotlib svn revision 6827. 
>> However I think it doesn't have to do with the log-scale but with the 
>> big variations on the x-scale and the custom xscale. I've reproduced a 
>> similar behavior with the following script (pan and zoom to see the 
>> buggy behavior).
>> --------------------
>>
>> import numpy as np
>> import matplotlib.pyplot as plt
>>
>> x = np.array([1.0,2.0,3.0,1.0E5,2.0E5])
>> y = np.arange(len(x))
>> plt.plot(x,y)
>> plt.xlim(xmin=2,xmax=6)
>> plt.show()
>>
>> --------------------
>>
>> Best Regards,
>> João Silva
>>
>>
>> ------------------------------------------------------------------------------
>> This SF.net email is sponsored by:
>> SourcForge Community
>> SourceForge wants to tell your story.
>> http://p.sf.net/sfu/sf-spreadtheword
>> _______________________________________________
>> Matplotlib-devel mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>> 
>> 
>
> 
-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA
From: Michael D. <md...@st...> - 2009年01月26日 15:33:29
Thanks for this.
I believe both of these examples illustrate a shortcoming in Agg when 
the distance between two points on either end of a line is too great.
I'll do some digging around and see what may be causing this and if any 
limits can be adjusted -- I may not get to this today, however.
Mike
João Luís Silva wrote:
> Jan Müller wrote:
> 
>> Hi,
>>
>> The simple code snippet at the end of this mail should plot a single line. 
>>
>> 
>
> I can confirm this bug on Ubuntu running matplotlib svn revision 6827. 
> However I think it doesn't have to do with the log-scale but with the 
> big variations on the x-scale and the custom xscale. I've reproduced a 
> similar behavior with the following script (pan and zoom to see the 
> buggy behavior).
> --------------------
>
> import numpy as np
> import matplotlib.pyplot as plt
>
> x = np.array([1.0,2.0,3.0,1.0E5,2.0E5])
> y = np.arange(len(x))
> plt.plot(x,y)
> plt.xlim(xmin=2,xmax=6)
> plt.show()
>
> --------------------
>
> Best Regards,
> João Silva
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> _______________________________________________
> Matplotlib-devel mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
> 
-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA
From: João L. S. <js...@fc...> - 2009年01月26日 15:05:08
Jan Müller wrote:
> Hi,
> 
> The simple code snippet at the end of this mail should plot a single line. 
> 
I can confirm this bug on Ubuntu running matplotlib svn revision 6827. 
However I think it doesn't have to do with the log-scale but with the 
big variations on the x-scale and the custom xscale. I've reproduced a 
similar behavior with the following script (pan and zoom to see the 
buggy behavior).
--------------------
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1.0,2.0,3.0,1.0E5,2.0E5])
y = np.arange(len(x))
plt.plot(x,y)
plt.xlim(xmin=2,xmax=6)
plt.show()
--------------------
Best Regards,
João Silva
From: Jan M. <mu...@im...> - 2009年01月26日 13:58:41
Hi,
The simple code snippet at the end of this mail should plot a single line. 
Unfortunately, depending on 
- the backend
- the windowsize
- and the pan/zoom position inside the plot 
one or more additional lines appear.
Under windows it looks like this:
http://img217.imageshack.us/my.php?image=matplotlibproblemei6.png
(disable Adblock Plus on Firefox, otherwise the image might not be visible)
When I pan the plot, the additional lines jump around randomly and sometimes dis- and reappear at their own will.
I get this problem for all the AGG-based backends (one additional line) and the GTK backend (several additional lines). GTKCairo does not show this behavior.
The problem appears under an up-to-date Fedora 64-bit with matplotlib 0.98.3 and 0.89.6 SVN (from today)
The output of "python setup.py" is this:
------------------
BUILDING MATPLOTLIB
matplotlib: 0.98.6svn
python: 2.5.2 (r252:60911, Sep 30 2008, 15:42:03) [GCC 4.3.2 20080917 (Red Hat 4.3.2-4)]
platform: linux2
REQUIRED DEPENDENCIES
numpy: 1.2.0
freetype2: 9.18.3
OPTIONAL BACKEND DEPENDENCIES
libpng: 1.2.33
Tkinter: no
wxPython: 2.8.9.1
 * WxAgg extension not required for wxPython >= 2.8
Gtk+: gtk+: 2.14.5, glib: 2.18.3, pygtk: 2.13.0,
 pygobject: 2.15.4
Qt4: Qt: 4.4.3, PyQt4: 4.4.4
Cairo: 1.4.12
OPTIONAL DATE/TIMEZONE DEPENDENCIES
datetime: present, version unknown
dateutil: 1.4
pytz: 2008i
OPTIONAL USETEX DEPENDENCIES
dvipng: no
ghostscript: 8.63
latex: no
------------------
Additionally I see this problem under 32-bit Windows XP using the Enthought EPD Py25 v4.1.30101 distribution which uses matplotlib 0.98.3
To reproduce the error:
- switch to GTKAgg
- run the script below
- enlarge or maximize the window (something larger than 1280*1024 should be fine)
- play around with zoom/pan
Expected result:
- a single line is plotted
Actually result:
- two or more lines are plotted
If you need more information just contact me,
Jan
-----------------------------------------
import numpy as np
import matplotlib.pyplot as plt
E = np.array(( 
 1.00000000e+00, 1.50000000e+00, 2.00000000e+00, 3.00000000e+00,
 4.00000000e+00, 5.00000000e+00, 6.00000000e+00, 8.00000000e+00,
 1.00000000e+01, 1.50000000e+01, 2.00000000e+01, 3.00000000e+01,
 4.00000000e+01, 5.00000000e+01, 6.00000000e+01, 8.00000000e+01,
 1.00000000e+02, 1.50000000e+02, 2.00000000e+02, 3.00000000e+02,
 
 4.00000000e+02, 5.00000000e+02, 6.00000000e+02, 8.00000000e+02,
 1.00000000e+03, 1.02200000e+03, 1.25000000e+03, 1.50000000e+03,
 2.00000000e+03, 2.04400000e+03, 3.00000000e+03, 4.00000000e+03,
 5.00000000e+03, 6.00000000e+03, 7.00000000e+03, 8.00000000e+03,
 9.00000000e+03, 1.00000000e+04, 1.10000000e+04, 1.20000000e+04,
 
 1.30000000e+04, 1.40000000e+04, 1.50000000e+04, 1.60000000e+04,
 1.80000000e+04, 2.00000000e+04, 2.20000000e+04, 2.40000000e+04,
 2.60000000e+04, 2.80000000e+04, 3.00000000e+04, 4.00000000e+04,
 5.00000000e+04, 6.00000000e+04, 8.00000000e+04, 1.00000000e+05,
 1.50000000e+05, 2.00000000e+05, 3.00000000e+05, 4.00000000e+05,
 
 5.00000000e+05, 6.00000000e+05, 8.00000000e+05, 1.00000000e+06,
 1.50000000e+06, 2.00000000e+06, 3.00000000e+06, 4.00000000e+06,
 5.00000000e+06, 6.00000000e+06, 8.00000000e+06, 1.00000000e+07,
 1.50000000e+07, 2.00000000e+07, 3.00000000e+07, 4.00000000e+07,
 5.00000000e+07, 6.00000000e+07, 8.00000000e+07, 1.00000000e+08))
 
att = np.array((
 6.81740051e+00, 1.75185086e+00, 6.63815247e-01, 1.67656668e-01,
 6.29160626e-02, 2.93190047e-02, 1.56961535e-02, 5.86499592e-03,
 2.72337524e-03, 6.73972636e-04, 2.49871770e-04, 6.16613263e-05,
 2.28421754e-05, 1.05816094e-05, 5.64930077e-06, 2.10496950e-06,
 9.82279267e-07, 2.49513274e-07, 9.62561983e-08, 2.63733618e-08,
 
 1.11014287e-08, 5.93131769e-09, 3.67936480e-09, 1.86298464e-09,
 1.17168470e-09, 1.12328773e-09, 7.79131487e-10, 5.81480647e-10,
 3.70505702e-10, 3.58735080e-10, 2.10556699e-10, 1.46027404e-10,
 1.11492282e-10, 9.01020155e-11, 7.55231748e-11, 6.50072897e-11,
 5.70367268e-11, 5.08048699e-11, 4.57978746e-11, 4.16871195e-11,
 
 3.82455571e-11, 3.53357639e-11, 3.28322663e-11, 3.06573900e-11,
 2.70724292e-11, 2.42403101e-11, 2.19399603e-11, 2.00399310e-11,
 1.84446235e-11, 1.70823384e-11, 1.59052762e-11, 1.18363457e-11,
 9.42247205e-12, 7.82716448e-12, 5.84766861e-12, 4.66702151e-12,
 3.10158861e-12, 2.32245712e-12, 1.54571561e-12, 1.15853984e-12,
 
 9.26114881e-13, 7.71364072e-13, 5.78493179e-13, 4.62698944e-13,
 3.08366381e-13, 2.31229973e-13, 1.54153316e-13, 1.15555237e-13,
 9.24919894e-14, 7.70766578e-14, 5.77835936e-14, 4.62280699e-14,
 3.08187133e-14, 2.31110475e-14, 1.54093566e-14, 1.15555237e-14,
 9.24322401e-15, 7.70169085e-15, 5.77776187e-15, 4.62220950e-15))
plt.figure()
plt.plot(E,att)
plt.yscale("log")
plt.xscale("linear")
plt.xlim(xmin=np.log(20), xmax=np.log(500))
plt.ylim(ymin=-18,ymax=5)
plt.show()

Showing 4 results of 4

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /