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



Showing 4 results of 4

SVN r8457 has what I think is an ideal solution. Unbeknownst to me, the 
clipping I added to speed up rendering of highly magnified images was 
being done in integers. Agg does provide an option to do this in 
doubles, and using that seems to prevent the image from disappearing. 
It even renders the image with the very narrow range that nonsingular() 
currently enforces (+/- 0.001).
Mike
On 06/23/2010 08:37 AM, Michael Droettboom wrote:
> On 06/22/2010 06:56 PM, Eric Firing wrote:
> 
>> 
>>> Unfortunately, this fix paves over the exception fixed earlier. Rather
>>> than getting an exception when the magnification is too high, it now
>>> silently just doesn't draw the image. I'm trying to figure out what the
>>> threshold is beyond which it fails in order to manually raise an
>>> exception, but not having much luck. I suspect it's somehow related to
>>> floating-point or even Agg's fixed-point rounding error.
>>>
>>> 
>> "just doesn't draw" sounds like a pretty benign failure mode. It might
>> even be better than raising an exception.
>> 
> I was just imagining the frequent questions "my image disappears when I
> zoom in". I think it's preferable to have an exception (or at least a
> warning) saying something useful in that case.
> 
>> An alternative might be to
>> use something like "nonsingular()" to block attempts to make the view
>> limits too small--once it is known how to calculate "too small".
>> 
> Yes. That's not a bad middle ground between raising an exception and
> doing nothing -- however this only applies to images, so nonsingular()
> or autoscale_view() etc. would have to become aware of when an image was
> on the axes. Not too difficult, I suppose.
> 
>> Yet
>> another alternative, more complicated to implement, would be to clip the
>> array and then interpolate to a finer grid at the python level when
>> trying to zoom too far into a cell of the original grid.
>>
>> 
> Yes, perhaps. But that means reimplementing all of the interpolation
> algorithms we currently use Agg for at the Python level, right? Doing a
> simple nearest neighbor interpolation in Python and then one of the more
> involved interpolation methods in Agg would not be equivalent. Such
> effort might be worth it in the long run to support non-regular grids,
> quadmeshes etc., however. But that's a major project and would probably
> need to be implemented in C/C++ anyway, just not necessarily based on Agg.
> 
>> It would be good if everything could be kept at the python or _image.cpp
>> level, so that the Agg code could be left unchanged. As far as I know,
>> your previous patch to raise the exception was the only mpl-specific
>> change that has been made to the Agg24 code.
>>
>> 
> There are other changes that have been made over time to keep it
> compatible with newer versions of compilers. As the upstream of the
> non-GPL version of Agg is basically dead (and AFAICT the GPL'd version
> is too), we're maintaining such changes ourselves.
>
> That said, the pulling of CXX classes into Agg is ugly, but it was the
> quickest solution (and one that will work for Debian as a basic patch
> against matplotlib 0.99.3). In the long run, the exception should be
> generic as far as Agg is concerned, and try/catch's need to be added
> around all calls into Agg from our Python wrappers.
>
> Mike
> 
>> Eric
>>
>>
>>
>> 
>>> Mike
>>>
>>> On 06/22/2010 12:31 PM, Michael Droettboom wrote:
>>>
>>> 
>>>> Ok. Attached is a corrected patch.
>>>>
>>>> Mike
>>>>
>>>> On 06/22/2010 12:26 PM, Michael Droettboom wrote:
>>>>
>>>> 
>>>>> Hold off, actually. This patch seems to have broken some thing
>>>>> inadvertently. Stay tuned...
>>>>>
>>>>> Mike
>>>>>
>>>>> On 06/22/2010 12:05 PM, Michael Droettboom wrote:
>>>>>
>>>>> 
>>>>>> In r8454, I have a applied a fix that allows this C++ exception to
>>>>>> correctly percolate to the Python side -- the user will still get an
>>>>>> exception, but it will be a Python exception and the interpreter
>>>>>> itself does not crash. (It used to work, but recent changes to CXX
>>>>>> caused it to break.) I have attached this patch to the e-mail.
>>>>>>
>>>>>> As Eric suggests, fixing the underlying limitation (I even hesitate
>>>>>> to call it a bug because it is definitely a corner case) requires
>>>>>> understanding some pretty dark depths of the Agg renderer.
>>>>>>
>>>>>> Mike
>>>>>>
>>>>>> On 06/21/2010 10:57 PM, Eric Firing wrote:
>>>>>>
>>>>>> 
>>>>>>> On 06/21/2010 12:24 PM, Sandro Tosi wrote:
>>>>>>>
>>>>>>> 
>>>>>>>> forwarded 585442 mat...@li...
>>>>>>>> thanks
>>>>>>>>
>>>>>>>> Hello Matplotlib developers,
>>>>>>>> here below is a report a user of maplotlib sent to the Debian bug
>>>>>>>> tracker. I've verified and it happend also with 0.99.3:
>>>>>>>>
>>>>>>>> $ python -c "import matplotlib as p ; print p.__version__"
>>>>>>>> 0.99.3
>>>>>>>> $ python mpl_crash.py
>>>>>>>> terminate called after throwing an instance of 'char const*'
>>>>>>>> Aborted
>>>>>>>>
>>>>>>>> Thanks for looking into it,
>>>>>>>> Sandro
>>>>>>>>
>>>>>>>> 
>>>>>>> Sandro,
>>>>>>>
>>>>>>> Thanks for reporting it.
>>>>>>>
>>>>>>> With the default interpolation, rendering gets extremely slow as the
>>>>>>> view limits decline to and below a single image pixel. I suspect the
>>>>>>> crash is related to this. Neither the slowdown nor the crash occurs
>>>>>>> with interpolation='nearest', although there is still an anomaly in
>>>>>>> which the image is blank when the viewlim region is too small.
>>>>>>>
>>>>>>> Like Ryan, I am not familiar with the _image.cpp and the underlying
>>>>>>> agg
>>>>>>> routines, but I suspect this is going to be a difficult problem to
>>>>>>> solve. It may be necessary to put in some workaround, trying to trap
>>>>>>> and prevent the extreme slowdown and crash. The slowdown topic came up
>>>>>>> on the list years ago.
>>>>>>>
>>>>>>> http://www.mail-archive.com/mat...@li.../msg00513.html
>>>>>>>
>>>>>>>
>>>>>>> Eric
>>>>>>>
>>>>>>>
>>>>>>> 
>>>>>>>> On Thu, Jun 10, 2010 at 16:52, Teemu Ikonen<tpi...@gm...>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> 
>>>>>>>>> Package: python-matplotlib
>>>>>>>>> Version: 0.99.1.2-3
>>>>>>>>> Severity: important
>>>>>>>>>
>>>>>>>>> Running a program which displays an image with plt.imshow() and
>>>>>>>>> changes the
>>>>>>>>> axes with plt.axis() before calling plt.show() crashes the python
>>>>>>>>> interpreter:
>>>>>>>>>
>>>>>>>>> $ python mpl_crash.py
>>>>>>>>> terminate called after throwing an instance of 'char const*'
>>>>>>>>> Aborted
>>>>>>>>>
>>>>>>>>> This happens at least with Qt4Agg, GTKAgg and TKAgg backends.
>>>>>>>>>
>>>>>>>>> The example program is attached.
>>>>>>>>>
>>>>>>>>> Best,
>>>>>>>>>
>>>>>>>>> Teemu
>>>>>>>>>
>>>>>>>>> -- System Information:
>>>>>>>>> Debian Release: squeeze/sid
>>>>>>>>> APT prefers testing
>>>>>>>>> APT policy: (500, 'testing')
>>>>>>>>> Architecture: amd64 (x86_64)
>>>>>>>>>
>>>>>>>>> Kernel: Linux 2.6.32-trunk-amd64 (SMP w/4 CPU cores)
>>>>>>>>> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
>>>>>>>>> Shell: /bin/sh linked to /bin/dash
>>>>>>>>>
>>>>>>>>> Versions of packages python-matplotlib depends on:
>>>>>>>>> ii libatk1.0-0 1.30.0-1 The ATK accessibility toolkit
>>>>>>>>> ii libc6 2.10.2-9 Embedded GNU C Library: Shared lib
>>>>>>>>> ii libcairo2 1.8.10-4 The Cairo 2D vector graphics libra
>>>>>>>>> ii libfontconfig1 2.8.0-2.1 generic font configuration library
>>>>>>>>> ii libfreetype6 2.3.11-1 FreeType 2 font engine, shared lib
>>>>>>>>> ii libgcc1 1:4.4.4-1 GCC support library
>>>>>>>>> ii libglib2.0-0 2.24.1-1 The GLib library of C routines
>>>>>>>>> ii libgtk2.0-0 2.20.1-1 The GTK+ graphical user interface
>>>>>>>>> ii libpango1.0-0 1.28.0-1 Layout and rendering of internatio
>>>>>>>>> ii libpng12-0 1.2.43-1 PNG library - runtime
>>>>>>>>> ii libstdc++6 4.4.4-1 The GNU Standard C++ Library v3
>>>>>>>>> ii python 2.5.4-9 An interactive high-level object-o
>>>>>>>>> ii python-cairo 1.8.8-1+b1 Python bindings for the Cairo vect
>>>>>>>>> ii python-dateutil 1.4.1-3 powerful extensions to the standar
>>>>>>>>> ii python-gobject 2.21.1-1 Python bindings for the GObject li
>>>>>>>>> ii python-matplotlib-data 0.99.1.2-3 Python based plotting system
>>>>>>>>> (data
>>>>>>>>> ii python-numpy 1:1.3.0-3+b1 Numerical Python adds a fast array
>>>>>>>>> ii python-pyparsing 1.5.2-2 Python parsing module
>>>>>>>>> ii python-support 1.0.8 automated rebuilding support for P
>>>>>>>>> ii python-tz 2010b-1 Python version of the Olson timezo
>>>>>>>>> ii tcl8.5 8.5.8-2 Tcl (the Tool Command Language) v8
>>>>>>>>> ii tk8.5 8.5.8-1 Tk toolkit for Tcl and X11, v8.5 -
>>>>>>>>> ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
>>>>>>>>>
>>>>>>>>> Versions of packages python-matplotlib recommends:
>>>>>>>>> ii python-glade2 2.17.0-2 GTK+ bindings: Glade support
>>>>>>>>> ii python-tk 2.6.5-1 Tkinter - Writing Tk applications
>>>>>>>>>
>>>>>>>>> Versions of packages python-matplotlib suggests:
>>>>>>>>> ii dvipng 1.13-1 convert DVI files to PNG graphics
>>>>>>>>> ii ipython 0.10-2 enhanced interactive Python shell
>>>>>>>>> ii librsvg2-common 2.26.3-1 SAX-based renderer library for SVG
>>>>>>>>> ii python-configobj 4.7.2+ds-1 simple but powerful config file re
>>>>>>>>> pn python-excelerator<none> (no description available)
>>>>>>>>> ii python-gtk2 2.17.0-2 Python bindings for the GTK+ widge
>>>>>>>>> pn python-matplotlib-doc<none> (no description available)
>>>>>>>>> pn python-qt3<none> (no description available)
>>>>>>>>> ii python-qt4 4.7.3-1 Python bindings for Qt4
>>>>>>>>> ii python-scipy 0.7.2-1 scientific tools for Python
>>>>>>>>> ii python-traits 3.3.0-1 Manifest typing and reactive progr
>>>>>>>>> ii python-wxgtk2.8 2.8.10.1-3 wxWidgets Cross-platform C++ GUI t
>>>>>>>>> ii texlive-extra-utils 2009-7 TeX Live: TeX auxiliary programs
>>>>>>>>> ii texlive-latex-extra 2009-7 TeX Live: LaTeX supplementary pack
>>>>>>>>>
>>>>>>>>> -- no debconf information
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Python-modules-team mailing list
>>>>>>>>> Pyt...@li...
>>>>>>>>> http://lists.alioth.debian.org/mailman/listinfo/python-modules-team
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 
>>>>>>>>
>>>>>>>>
>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>>
>>>>>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>>>>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>>>>>>> lucky parental unit. See the prize list and enter to win:
>>>>>>>> http://p.sf.net/sfu/thinkgeek-promo
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Matplotlib-devel mailing list
>>>>>>>> Mat...@li...
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>>>>>
>>>>>>>> 
>>>>>>> ------------------------------------------------------------------------------
>>>>>>>
>>>>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>>>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>>>>>> lucky parental unit. See the prize list and enter to win:
>>>>>>> http://p.sf.net/sfu/thinkgeek-promo
>>>>>>> _______________________________________________
>>>>>>> Matplotlib-devel mailing list
>>>>>>> Mat...@li...
>>>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>>>>
>>>>>>> 
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>>>>> lucky parental unit. See the prize list and enter to win:
>>>>>> http://p.sf.net/sfu/thinkgeek-promo
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Matplotlib-devel mailing list
>>>>>> Mat...@li...
>>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>>>
>>>>>>
>>>>>> 
>>>>> --
>>>>> Michael Droettboom
>>>>> Science Software Branch
>>>>> Space Telescope Science Institute
>>>>> Baltimore, Maryland, USA
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>>>> lucky parental unit. See the prize list and enter to win:
>>>>> http://p.sf.net/sfu/thinkgeek-promo
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Matplotlib-devel mailing list
>>>>> Mat...@li...
>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>>
>>>>>
>>>>> 
>>>> --
>>>> Michael Droettboom
>>>> Science Software Branch
>>>> Space Telescope Science Institute
>>>> Baltimore, Maryland, USA
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>>> lucky parental unit. See the prize list and enter to win:
>>>> http://p.sf.net/sfu/thinkgeek-promo
>>>>
>>>>
>>>> _______________________________________________
>>>> Matplotlib-devel mailing list
>>>> Mat...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>
>>>>
>>>> 
>>> --
>>> Michael Droettboom
>>> Science Software Branch
>>> Space Telescope Science Institute
>>> Baltimore, Maryland, USA
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>> lucky parental unit. See the prize list and enter to win:
>>> http://p.sf.net/sfu/thinkgeek-promo
>>>
>>>
>>>
>>> _______________________________________________
>>> Matplotlib-devel mailing list
>>> Mat...@li...
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>
>>> 
>> ------------------------------------------------------------------------------
>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>> lucky parental unit. See the prize list and enter to win:
>> http://p.sf.net/sfu/thinkgeek-promo
>> _______________________________________________
>> Matplotlib-devel mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>
>> 
>
> 
-- 
Michael Droettboom
Science Software Branch
Space Telescope Science Institute
Baltimore, Maryland, USA
On 06/22/2010 06:56 PM, Eric Firing wrote:
>
>> Unfortunately, this fix paves over the exception fixed earlier. Rather
>> than getting an exception when the magnification is too high, it now
>> silently just doesn't draw the image. I'm trying to figure out what the
>> threshold is beyond which it fails in order to manually raise an
>> exception, but not having much luck. I suspect it's somehow related to
>> floating-point or even Agg's fixed-point rounding error.
>> 
> "just doesn't draw" sounds like a pretty benign failure mode. It might
> even be better than raising an exception.
I was just imagining the frequent questions "my image disappears when I 
zoom in". I think it's preferable to have an exception (or at least a 
warning) saying something useful in that case.
> An alternative might be to
> use something like "nonsingular()" to block attempts to make the view
> limits too small--once it is known how to calculate "too small".
Yes. That's not a bad middle ground between raising an exception and 
doing nothing -- however this only applies to images, so nonsingular() 
or autoscale_view() etc. would have to become aware of when an image was 
on the axes. Not too difficult, I suppose.
> Yet
> another alternative, more complicated to implement, would be to clip the
> array and then interpolate to a finer grid at the python level when
> trying to zoom too far into a cell of the original grid.
> 
Yes, perhaps. But that means reimplementing all of the interpolation 
algorithms we currently use Agg for at the Python level, right? Doing a 
simple nearest neighbor interpolation in Python and then one of the more 
involved interpolation methods in Agg would not be equivalent. Such 
effort might be worth it in the long run to support non-regular grids, 
quadmeshes etc., however. But that's a major project and would probably 
need to be implemented in C/C++ anyway, just not necessarily based on Agg.
> It would be good if everything could be kept at the python or _image.cpp
> level, so that the Agg code could be left unchanged. As far as I know,
> your previous patch to raise the exception was the only mpl-specific
> change that has been made to the Agg24 code.
> 
There are other changes that have been made over time to keep it 
compatible with newer versions of compilers. As the upstream of the 
non-GPL version of Agg is basically dead (and AFAICT the GPL'd version 
is too), we're maintaining such changes ourselves.
That said, the pulling of CXX classes into Agg is ugly, but it was the 
quickest solution (and one that will work for Debian as a basic patch 
against matplotlib 0.99.3). In the long run, the exception should be 
generic as far as Agg is concerned, and try/catch's need to be added 
around all calls into Agg from our Python wrappers.
Mike
> Eric
>
>
> 
>> Mike
>>
>> On 06/22/2010 12:31 PM, Michael Droettboom wrote:
>> 
>>> Ok. Attached is a corrected patch.
>>>
>>> Mike
>>>
>>> On 06/22/2010 12:26 PM, Michael Droettboom wrote:
>>> 
>>>> Hold off, actually. This patch seems to have broken some thing
>>>> inadvertently. Stay tuned...
>>>>
>>>> Mike
>>>>
>>>> On 06/22/2010 12:05 PM, Michael Droettboom wrote:
>>>> 
>>>>> In r8454, I have a applied a fix that allows this C++ exception to
>>>>> correctly percolate to the Python side -- the user will still get an
>>>>> exception, but it will be a Python exception and the interpreter
>>>>> itself does not crash. (It used to work, but recent changes to CXX
>>>>> caused it to break.) I have attached this patch to the e-mail.
>>>>>
>>>>> As Eric suggests, fixing the underlying limitation (I even hesitate
>>>>> to call it a bug because it is definitely a corner case) requires
>>>>> understanding some pretty dark depths of the Agg renderer.
>>>>>
>>>>> Mike
>>>>>
>>>>> On 06/21/2010 10:57 PM, Eric Firing wrote:
>>>>> 
>>>>>> On 06/21/2010 12:24 PM, Sandro Tosi wrote:
>>>>>> 
>>>>>>> forwarded 585442 mat...@li...
>>>>>>> thanks
>>>>>>>
>>>>>>> Hello Matplotlib developers,
>>>>>>> here below is a report a user of maplotlib sent to the Debian bug
>>>>>>> tracker. I've verified and it happend also with 0.99.3:
>>>>>>>
>>>>>>> $ python -c "import matplotlib as p ; print p.__version__"
>>>>>>> 0.99.3
>>>>>>> $ python mpl_crash.py
>>>>>>> terminate called after throwing an instance of 'char const*'
>>>>>>> Aborted
>>>>>>>
>>>>>>> Thanks for looking into it,
>>>>>>> Sandro
>>>>>>> 
>>>>>> Sandro,
>>>>>>
>>>>>> Thanks for reporting it.
>>>>>>
>>>>>> With the default interpolation, rendering gets extremely slow as the
>>>>>> view limits decline to and below a single image pixel. I suspect the
>>>>>> crash is related to this. Neither the slowdown nor the crash occurs
>>>>>> with interpolation='nearest', although there is still an anomaly in
>>>>>> which the image is blank when the viewlim region is too small.
>>>>>>
>>>>>> Like Ryan, I am not familiar with the _image.cpp and the underlying
>>>>>> agg
>>>>>> routines, but I suspect this is going to be a difficult problem to
>>>>>> solve. It may be necessary to put in some workaround, trying to trap
>>>>>> and prevent the extreme slowdown and crash. The slowdown topic came up
>>>>>> on the list years ago.
>>>>>>
>>>>>> http://www.mail-archive.com/mat...@li.../msg00513.html
>>>>>>
>>>>>>
>>>>>> Eric
>>>>>>
>>>>>> 
>>>>>>> On Thu, Jun 10, 2010 at 16:52, Teemu Ikonen<tpi...@gm...>
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> Package: python-matplotlib
>>>>>>>> Version: 0.99.1.2-3
>>>>>>>> Severity: important
>>>>>>>>
>>>>>>>> Running a program which displays an image with plt.imshow() and
>>>>>>>> changes the
>>>>>>>> axes with plt.axis() before calling plt.show() crashes the python
>>>>>>>> interpreter:
>>>>>>>>
>>>>>>>> $ python mpl_crash.py
>>>>>>>> terminate called after throwing an instance of 'char const*'
>>>>>>>> Aborted
>>>>>>>>
>>>>>>>> This happens at least with Qt4Agg, GTKAgg and TKAgg backends.
>>>>>>>>
>>>>>>>> The example program is attached.
>>>>>>>>
>>>>>>>> Best,
>>>>>>>>
>>>>>>>> Teemu
>>>>>>>>
>>>>>>>> -- System Information:
>>>>>>>> Debian Release: squeeze/sid
>>>>>>>> APT prefers testing
>>>>>>>> APT policy: (500, 'testing')
>>>>>>>> Architecture: amd64 (x86_64)
>>>>>>>>
>>>>>>>> Kernel: Linux 2.6.32-trunk-amd64 (SMP w/4 CPU cores)
>>>>>>>> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
>>>>>>>> Shell: /bin/sh linked to /bin/dash
>>>>>>>>
>>>>>>>> Versions of packages python-matplotlib depends on:
>>>>>>>> ii libatk1.0-0 1.30.0-1 The ATK accessibility toolkit
>>>>>>>> ii libc6 2.10.2-9 Embedded GNU C Library: Shared lib
>>>>>>>> ii libcairo2 1.8.10-4 The Cairo 2D vector graphics libra
>>>>>>>> ii libfontconfig1 2.8.0-2.1 generic font configuration library
>>>>>>>> ii libfreetype6 2.3.11-1 FreeType 2 font engine, shared lib
>>>>>>>> ii libgcc1 1:4.4.4-1 GCC support library
>>>>>>>> ii libglib2.0-0 2.24.1-1 The GLib library of C routines
>>>>>>>> ii libgtk2.0-0 2.20.1-1 The GTK+ graphical user interface
>>>>>>>> ii libpango1.0-0 1.28.0-1 Layout and rendering of internatio
>>>>>>>> ii libpng12-0 1.2.43-1 PNG library - runtime
>>>>>>>> ii libstdc++6 4.4.4-1 The GNU Standard C++ Library v3
>>>>>>>> ii python 2.5.4-9 An interactive high-level object-o
>>>>>>>> ii python-cairo 1.8.8-1+b1 Python bindings for the Cairo vect
>>>>>>>> ii python-dateutil 1.4.1-3 powerful extensions to the standar
>>>>>>>> ii python-gobject 2.21.1-1 Python bindings for the GObject li
>>>>>>>> ii python-matplotlib-data 0.99.1.2-3 Python based plotting system
>>>>>>>> (data
>>>>>>>> ii python-numpy 1:1.3.0-3+b1 Numerical Python adds a fast array
>>>>>>>> ii python-pyparsing 1.5.2-2 Python parsing module
>>>>>>>> ii python-support 1.0.8 automated rebuilding support for P
>>>>>>>> ii python-tz 2010b-1 Python version of the Olson timezo
>>>>>>>> ii tcl8.5 8.5.8-2 Tcl (the Tool Command Language) v8
>>>>>>>> ii tk8.5 8.5.8-1 Tk toolkit for Tcl and X11, v8.5 -
>>>>>>>> ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
>>>>>>>>
>>>>>>>> Versions of packages python-matplotlib recommends:
>>>>>>>> ii python-glade2 2.17.0-2 GTK+ bindings: Glade support
>>>>>>>> ii python-tk 2.6.5-1 Tkinter - Writing Tk applications
>>>>>>>>
>>>>>>>> Versions of packages python-matplotlib suggests:
>>>>>>>> ii dvipng 1.13-1 convert DVI files to PNG graphics
>>>>>>>> ii ipython 0.10-2 enhanced interactive Python shell
>>>>>>>> ii librsvg2-common 2.26.3-1 SAX-based renderer library for SVG
>>>>>>>> ii python-configobj 4.7.2+ds-1 simple but powerful config file re
>>>>>>>> pn python-excelerator<none> (no description available)
>>>>>>>> ii python-gtk2 2.17.0-2 Python bindings for the GTK+ widge
>>>>>>>> pn python-matplotlib-doc<none> (no description available)
>>>>>>>> pn python-qt3<none> (no description available)
>>>>>>>> ii python-qt4 4.7.3-1 Python bindings for Qt4
>>>>>>>> ii python-scipy 0.7.2-1 scientific tools for Python
>>>>>>>> ii python-traits 3.3.0-1 Manifest typing and reactive progr
>>>>>>>> ii python-wxgtk2.8 2.8.10.1-3 wxWidgets Cross-platform C++ GUI t
>>>>>>>> ii texlive-extra-utils 2009-7 TeX Live: TeX auxiliary programs
>>>>>>>> ii texlive-latex-extra 2009-7 TeX Live: LaTeX supplementary pack
>>>>>>>>
>>>>>>>> -- no debconf information
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Python-modules-team mailing list
>>>>>>>> Pyt...@li...
>>>>>>>> http://lists.alioth.debian.org/mailman/listinfo/python-modules-team
>>>>>>>>
>>>>>>>> 
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>>
>>>>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>>>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>>>>>> lucky parental unit. See the prize list and enter to win:
>>>>>>> http://p.sf.net/sfu/thinkgeek-promo
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Matplotlib-devel mailing list
>>>>>>> Mat...@li...
>>>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>>>> 
>>>>>> ------------------------------------------------------------------------------
>>>>>>
>>>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>>>>> lucky parental unit. See the prize list and enter to win:
>>>>>> http://p.sf.net/sfu/thinkgeek-promo
>>>>>> _______________________________________________
>>>>>> Matplotlib-devel mailing list
>>>>>> Mat...@li...
>>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>>> 
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>>>> lucky parental unit. See the prize list and enter to win:
>>>>> http://p.sf.net/sfu/thinkgeek-promo
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Matplotlib-devel mailing list
>>>>> Mat...@li...
>>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>>
>>>>> 
>>>>
>>>> --
>>>> Michael Droettboom
>>>> Science Software Branch
>>>> Space Telescope Science Institute
>>>> Baltimore, Maryland, USA
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>>> lucky parental unit. See the prize list and enter to win:
>>>> http://p.sf.net/sfu/thinkgeek-promo
>>>>
>>>>
>>>> _______________________________________________
>>>> Matplotlib-devel mailing list
>>>> Mat...@li...
>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>>
>>>> 
>>>
>>> --
>>> Michael Droettboom
>>> Science Software Branch
>>> Space Telescope Science Institute
>>> Baltimore, Maryland, USA
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>>> lucky parental unit. See the prize list and enter to win:
>>> http://p.sf.net/sfu/thinkgeek-promo
>>>
>>>
>>> _______________________________________________
>>> Matplotlib-devel mailing list
>>> Mat...@li...
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>>>
>>> 
>>
>> --
>> Michael Droettboom
>> Science Software Branch
>> Space Telescope Science Institute
>> Baltimore, Maryland, USA
>>
>>
>>
>> ------------------------------------------------------------------------------
>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>> lucky parental unit. See the prize list and enter to win:
>> http://p.sf.net/sfu/thinkgeek-promo
>>
>>
>>
>> _______________________________________________
>> Matplotlib-devel mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>> 
>
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit. See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________
> Matplotlib-devel mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
> 
-- 
Michael Droettboom
Science Software Branch
Space Telescope Science Institute
Baltimore, Maryland, USA
From: Jae-Joon L. <lee...@gm...> - 2010年06月23日 03:05:37
Eric,
I should have left more comments about my change.
The issue is that the current slicing algorithm sometimes fails with
"_draw_unsampled_image" which support arbitrary affine transformation
of the image. The slicing gets wrong when the image is significantly
skewed or rotated. So, as a temporary measure, I simply wanted to
disable the slicing until we have a correct algorithm in place.
I guess a quick (still temporary) fix is to check if affine transform
is needed, and do the slicing if not.
Something like below. The condition is not exactly correct, but I
think it would work in most of cases.
I actually didn't test the patch. I'll be out of town until the end of
this week.
On a second thought, I think it should not be difficult to workaround
the slicing thing for arbitrary affine transform. I'll think about the
whole issue again when I get back. If you have a better idea, please
go ahead and implement.
Regards,
-JJ
diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py
index 7c1128f..b65f446 100644
--- a/lib/matplotlib/image.py
+++ b/lib/matplotlib/image.py
@@ -248,9 +248,14 @@ class _AxesImageBase(martist.Artist, cm.ScalarMappable):
 """
+ if self._image_skew_coordinate:
+ no_slice = True
+ else:
+ no_slice = False
+
 im, xmin, ymin, dxintv, dyintv, sx, sy = \
 self._get_unsampled_image(self._A, self.get_extent(),
- self.axes.viewLim, noslice=True)
+ self.axes.viewLim, noslice=no_slice)
 if im is None: return # I'm not if this check is required. -JJL
On Tue, Jun 22, 2010 at 8:45 PM, Eric Firing <ef...@ha...> wrote:
> JJ,
>
> In AxesImageBase._draw_unsampled_image, there is a call to
> _get_unsampled_image(...noslice=True). When using imshow(Z,
> interpolation='nearest'), this defeats the slicing that makes such a
> difference when zooming and panning a small chunk of a large image. Changing
> it to False makes imshow work better; I don't understand why one would ever
> want noslice=True. Am I missing something? Can we just change it to False?
> Or remove the noslice option and kwarg entirely?
>
> Eric
>
From: Eric F. <ef...@ha...> - 2010年06月23日 00:45:45
JJ,
In AxesImageBase._draw_unsampled_image, there is a call to 
_get_unsampled_image(...noslice=True). When using imshow(Z, 
interpolation='nearest'), this defeats the slicing that makes such a 
difference when zooming and panning a small chunk of a large image. 
Changing it to False makes imshow work better; I don't understand why 
one would ever want noslice=True. Am I missing something? Can we just 
change it to False? Or remove the noslice option and kwarg entirely?
Eric

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 によって変換されたページ (->オリジナル) /