SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
(3)
Jun
Jul
Aug
(12)
Sep
(12)
Oct
(56)
Nov
(65)
Dec
(37)
2004 Jan
(59)
Feb
(78)
Mar
(153)
Apr
(205)
May
(184)
Jun
(123)
Jul
(171)
Aug
(156)
Sep
(190)
Oct
(120)
Nov
(154)
Dec
(223)
2005 Jan
(184)
Feb
(267)
Mar
(214)
Apr
(286)
May
(320)
Jun
(299)
Jul
(348)
Aug
(283)
Sep
(355)
Oct
(293)
Nov
(232)
Dec
(203)
2006 Jan
(352)
Feb
(358)
Mar
(403)
Apr
(313)
May
(165)
Jun
(281)
Jul
(316)
Aug
(228)
Sep
(279)
Oct
(243)
Nov
(315)
Dec
(345)
2007 Jan
(260)
Feb
(323)
Mar
(340)
Apr
(319)
May
(290)
Jun
(296)
Jul
(221)
Aug
(292)
Sep
(242)
Oct
(248)
Nov
(242)
Dec
(332)
2008 Jan
(312)
Feb
(359)
Mar
(454)
Apr
(287)
May
(340)
Jun
(450)
Jul
(403)
Aug
(324)
Sep
(349)
Oct
(385)
Nov
(363)
Dec
(437)
2009 Jan
(500)
Feb
(301)
Mar
(409)
Apr
(486)
May
(545)
Jun
(391)
Jul
(518)
Aug
(497)
Sep
(492)
Oct
(429)
Nov
(357)
Dec
(310)
2010 Jan
(371)
Feb
(657)
Mar
(519)
Apr
(432)
May
(312)
Jun
(416)
Jul
(477)
Aug
(386)
Sep
(419)
Oct
(435)
Nov
(320)
Dec
(202)
2011 Jan
(321)
Feb
(413)
Mar
(299)
Apr
(215)
May
(284)
Jun
(203)
Jul
(207)
Aug
(314)
Sep
(321)
Oct
(259)
Nov
(347)
Dec
(209)
2012 Jan
(322)
Feb
(414)
Mar
(377)
Apr
(179)
May
(173)
Jun
(234)
Jul
(295)
Aug
(239)
Sep
(276)
Oct
(355)
Nov
(144)
Dec
(108)
2013 Jan
(170)
Feb
(89)
Mar
(204)
Apr
(133)
May
(142)
Jun
(89)
Jul
(160)
Aug
(180)
Sep
(69)
Oct
(136)
Nov
(83)
Dec
(32)
2014 Jan
(71)
Feb
(90)
Mar
(161)
Apr
(117)
May
(78)
Jun
(94)
Jul
(60)
Aug
(83)
Sep
(102)
Oct
(132)
Nov
(154)
Dec
(96)
2015 Jan
(45)
Feb
(138)
Mar
(176)
Apr
(132)
May
(119)
Jun
(124)
Jul
(77)
Aug
(31)
Sep
(34)
Oct
(22)
Nov
(23)
Dec
(9)
2016 Jan
(26)
Feb
(17)
Mar
(10)
Apr
(8)
May
(4)
Jun
(8)
Jul
(6)
Aug
(5)
Sep
(9)
Oct
(4)
Nov
Dec
2017 Jan
(5)
Feb
(7)
Mar
(1)
Apr
(5)
May
Jun
(3)
Jul
(6)
Aug
(1)
Sep
Oct
(2)
Nov
(1)
Dec
2018 Jan
Feb
Mar
Apr
(1)
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2020 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2025 Jan
(1)
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
S M T W T F S



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

Showing results of 28

1 2 > >> (Page 1 of 2)
From: Massimo Di S. <mas...@ya...> - 2009年07月02日 23:46:05
Hi All,
i'm starting to learn matplotlib,
for my study i need to parse the nmea sentence from a gps
and plot a "sky graphic" to plot satellite visibility.
(i tried to write code from scratch ... it works but my teacher 
suggest me to not reinvent the well, so, to have a good nema parser, i 
installed gpsd ... it has in the source code a nice python code that 
allow me to retrieve satellite constallation iformation).
now i need to learn how to produce a sky plot,
have you any suggestion on how to produce such kind of graphic ?
thanks to all for any suggestion!
Massimo.
From: Ralf G. <ral...@go...> - 2009年07月02日 23:33:54
sorry, i replied to Mike and not to the list. see below.
On Thu, Jul 2, 2009 at 2:57 PM, Ralf Gommers <ral...@go...>wrote:
> Thanks for looking into this Mike.
>
> On Thu, Jul 2, 2009 at 10:39 AM, Michael Droettboom <md...@st...>wrote:
>
>> It is not surprising that memory usage is much lower without printing the
>> plot. Very little is actually done by the "plot" command other than setting
>> up a tree of objects that is later rendered during the printing process
>> (where most of the work happens).
>>
>> The attached script based on what you provided doesn't leak memory for me
>> with matplotlib 0.98.5.2. It would appear that there is something else in
>> your application triggering the leak. Perhaps there is something holding a
>> reference longer than it should?
>>
>
> Your attached script memleak2.py is indeed fine, it never takes up more
> than 60Mb of RAM. But did you try to run the PyQt4 GUI I attached? There
> the same save_png() function does increase memory usage for each call.
>
> I'm not sure how to exactly measure memory usage for a GUI program, but it
> is so large I can look at "System Activity" (or Task Manager on XP) and get
> the approximate number:
>
> Loading the GUI: 30.5Mb
> 1st call to save_png: 82Mb
> 2nd call: 116Mb
> 10th call: 380Mb
>
> I can see the memory usage drop after some calls, so I guess it is a
> problem of references being held and sometimes being released as you said.
> But memory use does seem to be unbounded. Waiting for minutes, or
> interacting with the GUI, never releases any memory. It is strange, the
> PyQt4 demo program is fine by itself, save_png() is fine by itself, but
> combine them and there's a memory problem.
>
> Cheers,
> Ralf
>
>
>
>> You can see from the attached massif plots that memory usage never becomes
>> unbounded. It is normal for Python to delay deallocation for efficiency
>> reasons. Calling gc.collect (the second graph) does help keep memory usage
>> more compact however, if that is a primary concern.
>>
>> Cheers,
>> Mike
>>
>> Ralf Gommers wrote:
>>
>>> Hi,
>>>
>>> I am working on a PyQt4 application with some embedded MPL figures, and
>>> am also trying to save some figures as png's without displaying them. I am
>>> observing huge memory increases (10s or 100s of Mb) the moment I try to save
>>> a png. I reproduced the issue by combining two mpl examples,
>>> http://matplotlib.sourceforge.net/examples/user_interfaces/embedding_in_qt4.htmland
>>> http://matplotlib.sourceforge.net/examples/api/agg_oo.html. Full code is
>>> attached. When pressing the "save figure" button, memory usage shoots up,
>>> multiple clicks keep sending it higher (although not monotonically).
>>>
>>> I tested on two different platforms
>>> - Matplotlib 98.5.2 and Python 2.6.2 on Ubuntu.
>>> - latest Enthought Python Distribution on Windows XP.
>>>
>>> The function that does the png saving is:
>>>
>>> def save_png():
>>> """Save an image as a png file"""
>>>
>>> pngpath = 'test_mplsave.png'
>>>
>>> fig = Figure()
>>> canvas = FigureCanvas(fig)
>>> ax = fig.add_subplot(111)
>>> x = arange(5e3)
>>> ax.plot(x, sin(x))
>>> canvas.print_figure(pngpath)
>>>
>>> ## tried all things commented out below, all makes no difference ##
>>> #fig.savefig(pngpath)
>>>
>>> #del(fig)
>>> #del(canvas)
>>> #del(ax)
>>>
>>> #import matplotlib.pyplot as plt
>>> #plt.close(fig)
>>>
>>> #import gc
>>> #gc.collect()
>>>
>>> Commenting out the canvas.print_figure line fixes the issue.
>>>
>>> Am I doing something obviously wrong, or mixing two incompatible ways of
>>> doing things?
>>>
>>> Cheers,
>>> Ralf
>>>
>>> ------------------------------------------------------------------------
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Mat...@li...
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>
>> --
>> Michael Droettboom
>> Science Software Branch
>> Operations and Engineering Division
>> Space Telescope Science Institute
>> Operated by AURA for NASA
>>
>>
>> from matplotlib.backends.backend_agg import FigureCanvasAgg as
>> FigureCanvas
>> from matplotlib.figure import Figure
>>
>> from numpy import arange, sin
>>
>> import gc
>>
>> def save_png():
>> """Save an image as a png file"""
>>
>> pngpath = 'test_mplsave.png'
>>
>> fig = Figure()
>> canvas = FigureCanvas(fig)
>> ax = fig.add_subplot(111)
>> x = arange(5e3)
>> ax.plot(x, sin(x))
>> canvas.print_figure(pngpath)
>>
>> # The below is not necessary to prevent a leak, but it does make
>> # memory usage more compact
>> gc.collect()
>>
>> for i in range(100):
>> save_png()
>>
>>
>>
>>
>
From: Gary R. <gr...@bi...> - 2009年07月02日 22:57:05
Is this an ideas thread?
How about a "copy image to clipboard" button for the toolbar.
Gary R.
Pierre GM wrote:
> Eh, can I play ?
> * Something I'd really like to see is a way to access a given patch/ 
> line/collection/... by a string (a name) instead of having to find the 
> corresponding element in a list. That would mean converting lists into 
> dictionaries, or at least provide a way to map the list to a dictionary.
> An example of application would be "del lines['first']" to delete the 
> line named 'first'. By default, if no name is explicitly given to an 
> object, we could use the order in which it is drawn...
From: Jae-Joon L. <lee...@gm...> - 2009年07月02日 22:49:51
The dropbox link is broken (you need a public url).
What version of mpl and what backend are you using?
There was a similar problem which has now been fixed.
Try the work-around described in the thread below, and see if works.
http://www.nabble.com/problems-with-contourf---alpha-td22553269.html
Regards,
-JJ
On Thu, Jul 2, 2009 at 4:26 PM, Rick Muller<rpm...@gm...> wrote:
> When I do contourf plots in matplotlib, I get lines connecting the contour
> levels. This doesn't only appear to be an artifact of my plotting
> algorithms, it appears in this example from the matplotlib cookbook:
>
> http://www.scipy.org/Cookbook/Matplotlib/Gridding_irregularly_spaced_data
>
> at least on my mac.
>
> (I think this is the link to the output I get from that:
> https://dl-web.getdropbox.com/get/Photos/griddata-test.png?w=007c9af9
> )
>
> Is there a way to keep these lines from happening? If not, is there a way to
> turn off all of the black lines separating the contour levels?
>
> Thanks in advance,
>
> Rick
>
> --
> Rick Muller
> rpm...@gm...
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
From: Rick M. <rpm...@gm...> - 2009年07月02日 21:39:51
When I do contourf plots in matplotlib, I get lines connecting the contour
levels. This doesn't only appear to be an artifact of my plotting
algorithms, it appears in this example from the matplotlib cookbook:
http://www.scipy.org/Cookbook/Matplotlib/Gridding_irregularly_spaced_data
at least on my mac.
(I think this is the link to the output I get from that:
https://dl-web.getdropbox.com/get/Photos/griddata-test.png?w=007c9af9
)
Is there a way to keep these lines from happening? If not, is there a way to
turn off all of the black lines separating the contour levels?
Thanks in advance,
Rick
-- 
Rick Muller
rpm...@gm...
From: keflavich <kef...@gm...> - 2009年07月02日 21:13:28
OK, thanks. I don't really know why it's failing, but I'm going to continue
trying to get other backends installed to test them. 
I also now have independent reasons not to use the MacOSX backend:
Thu Jul 2 14:51:48 Python-64[56094] <Error>: CGContextSetLineDash: invalid
dash array: negative lengths are not allowed.
I can't draw dashed lines.
Adam
-- 
View this message in context: http://www.nabble.com/ipython-threading-fails-with-macosx-backend-tp24311071p24313852.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
From: Valentin F. <flu...@gm...> - 2009年07月02日 20:58:17
Hi,
For a contour plot I use the option 'manual=True' in clabel
to set the location of the labels manually.
Before the plotting command I set some figure properties using
rcParams as explained on this site:
http://www.scipy.org/Cookbook/Matplotlib/LaTeX_Examples
My Problem is, that the manual-option changes the figure 
properties and when I use savefig I get a very different result
compared to 'manual=False'.
Is there some way to prevent this or alternatively set the 
properties after manually setting the labels?
Thanks in advance,
Valentin
Here is an example.
=====================================
from math import pi
import numpy as np
import pylab as pl
#######################
fig_width_pt = 246.0 # Get this from LaTeX using \showthe\columnwidth
inches_per_pt = 1.0/72.27 # Convert pt to inch
golden_mean = 1 #(sqrt(5)-1.0)/2.0 # Aesthetic ratio
fig_width = fig_width_pt*inches_per_pt # width in inches
fig_height =fig_width*golden_mean # height in inches
fig_width = fig_width
fig_size = [fig_width,fig_height]
params = {'backend': 'ps',
 'axes.labelsize': 10,
 'text.fontsize': 10,
 'legend.fontsize': 10,
 'xtick.labelsize': 8,
 'ytick.labelsize': 8,
 'figure.figsize': fig_size}
pl.rcParams.update(params)
ax = pl.axes([0.15, 0.15, 0.8, 0.8])
dummy = np.linspace(0, 2*pi, 101)
s, t = np.meshgrid(dummy, dummy)
f = np.sin(2*s)**2* np.cos(t)
cs = pl.contour(s, t, f) 
pl.clabel(cs, manual=True)
pl.xlim(0, 2*pi)
pl.ylim(0, 2*pi)
pl.savefig('test.png')
=====================================
From: John H. <jd...@gm...> - 2009年07月02日 18:30:37
On Thu, Jul 2, 2009 at 1:00 PM, Pierre GM<pgm...@gm...> wrote:
> Eh, can I play ?
> * Something I'd really like to see is a way to access a given patch/
> line/collection/... by a string (a name) instead of having to find the
> corresponding element in a list. That would mean converting lists into
> dictionaries, or at least provide a way to map the list to a dictionary.
> An example of application would be "del lines['first']" to delete the
> line named 'first'. By default, if no name is explicitly given to an
> object, we could use the order in which it is drawn...
>
Take a look at findobj with an arbitrary match function (eg set the
label property on the obj you want to find and then call find obj with
a function that checks the label)
http://matplotlib.sourceforge.net/examples/pylab_examples/findobj_demo.html
From: Brian G. <ell...@gm...> - 2009年07月02日 18:20:38
As I understand it the Mac backend uses the PyOS_ImputHook trick, which
means that no custom threading code is needed in IPython. Thus it should
"just work" without any threading flags in both IPython *and* regular
python. Just as an aside, wx is the only GUI toolkit that doesn't support
this "new" type of interactive usage. We (ipython devs) are working with
the wx devs to change that. Once that is done, we should be able to get rid
of all the nasty threading code in ipython. More details will follow.
Cheers,
Brian
On Thu, Jul 2, 2009 at 10:48 AM, Michael Droettboom <md...@st...> wrote:
> The Mac OS backend is fairly new, and I don't believe any of the
> backend-specific threading code that ipython requires has been
> implemented for the OS-X backend. Just wanted to drop a note to say
> "it's probably not you". But as a non-Mac user, I may be wrong, and I
> hope to be corrected :)
>
> Michiel: any idea how much effort would be involved here?
>
> Cheers,
> Mike
>
> keflavich wrote:
> > Hi, I'm using ipython 0.9.1 with the svn version of matplotlib on 64 bit
> > python on mac os x 10.5.7.
> >
> > I have only been able to get python-64 running with the MacOSX backend;
> all
> > of the others (wxpython, gtk, qt, tk) have failed for one reason or
> another.
> >
> > I've tried ipython without any flags and importing pylab on the command
> > line:
> > from pylab import *
> > and ipython -pylab,
> > and then plotting from a script. I retain access to the command line
> unless
> > I type "show()" at the command line, at which point I can't return to the
> > command line unless I close all of my graphics windows.
> >
> > I don't have this problem when running 32 bit python with qt or tk as the
> > backends.
> >
> > Is this an error? Should there be a command-line flag for ipython to
> start
> > threading for MacOSX specifically?
> >
> > Thanks,
> > Adam
> >
>
> --
> Michael Droettboom
> Science Software Branch
> Operations and Engineering Division
> Space Telescope Science Institute
> Operated by AURA for NASA
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
From: Brian Z. <br...@gm...> - 2009年07月02日 18:07:52
On my system, this example appears to be working just fine. I even bumped
the number of data points from 1000 to 10,000. I'm on OS X 10.5.7 with:
matplotlib 0.98.5.2
PyQt 4.5.1 (GPL)
Qt 4.5 (LGPL)
Maybe try updating your PyQt installation?
BZ
On Thu, Jul 2, 2009 at 6:46 AM, Ole Streicher <ole...@gm...>wrote:
> Hello Darren,
>
> OK, in this context it seems to work.
>
> I attach a script that shows the problem.
>
> Run it, move the second diagram below the first, adjust their sizes so
> that they take roughly the same size:
>
> +---------------+-------+
> | Diagram 1 | |
> | | |
> | | Hello |
> +---------------+ World |
> | Diagram 2 | |
> | | |
> | | |
> +---------------+-------+
>
> (you will see that the Diagram 2 will not alway update properly :-( [*] )
> and then move the slider between the diagrams and the "Hello World"
> label. There is a good chance that the program will segfault. If it does
> not, increase the number of points in the diagrams.
>
> BTW,could you reproduce my last example with diagram and scrollbar? It
> still remains unsolved (and is reproduced here [*]).
>
> Versions (all 64 bit):
>
> openSUSE 11.1:
> Qt Open Source Edition 4.4.3
> PyQt 4.4.3
> Matplotlib 0.98.5.2
>
> Kubuntu 9.04:
> Qt Open Source Edition 4.5.0
> PyQt 4.4.4
> Matplotlib 0.98.5.2
>
> Best regards
>
> Ole
>
From: Pierre GM <pgm...@gm...> - 2009年07月02日 18:06:53
Eh, can I play ?
* Something I'd really like to see is a way to access a given patch/ 
line/collection/... by a string (a name) instead of having to find the 
corresponding element in a list. That would mean converting lists into 
dictionaries, or at least provide a way to map the list to a dictionary.
An example of application would be "del lines['first']" to delete the 
line named 'first'. By default, if no name is explicitly given to an 
object, we could use the order in which it is drawn...
From: Darren D. <dsd...@gm...> - 2009年07月02日 18:00:51
On Thu, Jul 2, 2009 at 9:46 AM, Ole Streicher <ole...@gm...>wrote:
> Hello Darren,
>
> Darren Dale <dsd...@gm...> writes:
> > I can't produce a segfault with the attached script. I have Qt-4.5.2,
> > PyQt-4.5.1, and a checkout of the matplotlib trunk.
>
> OK, in this context it seems to work.
>
> I attach a script that shows the problem.
>
> Run it, move the second diagram below the first, adjust their sizes so
> that they take roughly the same size:
>
> +---------------+-------+
> | Diagram 1 | |
> | | |
> | | Hello |
> +---------------+ World |
> | Diagram 2 | |
> | | |
> | | |
> +---------------+-------+
>
> (you will see that the Diagram 2 will not alway update properly :-( [*] )
> and then move the slider between the diagrams and the "Hello World"
> label. There is a good chance that the program will segfault. If it does
> not, increase the number of points in the diagrams.
>
I can't reproduce the problem. The diagrams update properly and I don't see
a segfault. Maybe it is an issue that was fixed in Qt-4.5.[1,2] or
PyQt-4.5.1.
> BTW,could you reproduce my last example with diagram and scrollbar? It
> still remains unsolved (and is reproduced here [*]).
>
Yes, I responded this afternoon and I have asked on the pyqt mailing list.
Darren
From: Michael D. <md...@st...> - 2009年07月02日 17:49:48
The Mac OS backend is fairly new, and I don't believe any of the 
backend-specific threading code that ipython requires has been 
implemented for the OS-X backend. Just wanted to drop a note to say 
"it's probably not you". But as a non-Mac user, I may be wrong, and I 
hope to be corrected :)
Michiel: any idea how much effort would be involved here?
Cheers,
Mike
keflavich wrote:
> Hi, I'm using ipython 0.9.1 with the svn version of matplotlib on 64 bit
> python on mac os x 10.5.7.
>
> I have only been able to get python-64 running with the MacOSX backend; all
> of the others (wxpython, gtk, qt, tk) have failed for one reason or another. 
>
> I've tried ipython without any flags and importing pylab on the command
> line:
> from pylab import *
> and ipython -pylab,
> and then plotting from a script. I retain access to the command line unless
> I type "show()" at the command line, at which point I can't return to the
> command line unless I close all of my graphics windows.
>
> I don't have this problem when running 32 bit python with qt or tk as the
> backends.
>
> Is this an error? Should there be a command-line flag for ipython to start
> threading for MacOSX specifically?
>
> Thanks,
> Adam
> 
-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA
From: keflavich <kef...@gm...> - 2009年07月02日 17:40:23
Hi, I'm using ipython 0.9.1 with the svn version of matplotlib on 64 bit
python on mac os x 10.5.7.
I have only been able to get python-64 running with the MacOSX backend; all
of the others (wxpython, gtk, qt, tk) have failed for one reason or another. 
I've tried ipython without any flags and importing pylab on the command
line:
from pylab import *
and ipython -pylab,
and then plotting from a script. I retain access to the command line unless
I type "show()" at the command line, at which point I can't return to the
command line unless I close all of my graphics windows.
I don't have this problem when running 32 bit python with qt or tk as the
backends.
Is this an error? Should there be a command-line flag for ipython to start
threading for MacOSX specifically?
Thanks,
Adam
-- 
View this message in context: http://www.nabble.com/ipython-threading-fails-with-macosx-backend-tp24311071p24311071.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
From: Stephane R. <ste...@gm...> - 2009年07月02日 15:11:06
Yep, the same library (physical, on our network) fails depending only
the computer, thus on its own internal libraries called by GEOS.
By the way, I tried basemap with geos 3.0.4, and saw the "simplify()"
method working. That's funny!
On Thu, Jul 2, 2009 at 2:08 PM, Jeff Whitaker<js...@fa...> wrote:
> Stephane Raynaud wrote:
>>
>> Hi (Jeff),
>>
>>
>> I recently performed updates to matplotlib and basemap.
>> >From this time, I have a random and reccurent error when I create a
>> Basemap instance.
>> Here is one example :
>>
>>
>>>>>
>>>>> from mpl_toolkits.basemap import Basemap
>>>>> Basemap(**{'lon_0': -4.5250263598141309, 'urcrnrlat':
>>>>> 49.140154231678416, 'projection': 'cyl', 'llcrnrlon': -7.2999968048710144,
>>>>> 'lat_ts': 47.468781818043126, 'urcrnrlon': -1.7500559147572474,
>>>>> 'area_thresh': 0.1, 'llcrnrlat': 45.797409404407844, 'resolution': 'i',
>>>>> 'lat_0': 47.468781818043126})
>>>>>
>>
>> GEOS_ERROR: TopologyException: found non-noded intersection between
>> 8.67583 4.66292, 8.70206 4.66997 and 8.71039 4.67664, 8.67708 4.64997
>> 8.70205 4.66997
>>
>> It depends on the area and the resolution (polygons).
>>
>> I have version '0.99.3' of basemap.
>>
>> Any idea?
>>
>
> Stephane: I'd say it's an issue with your geos library installation that
> basemap is linking to. I don't see that error using your example for geos
> 2.2.3 or geos 3.0.3.
>
> I'd suggest rebuilding the geos library, then recompiling basemap.
>
> -Jeff
>
-- 
Stephane Raynaud
From: Jae-Joon L. <lee...@gm...> - 2009年07月02日 15:05:36
I can reproduce the error with the svn version.
It seems that the problem is not SubplotHost specific, i.e., you have
same problem if you use mpl's original axes with twinx.
I think it has something to do with the axes sharing in general.
Preventing autoscale of xaxis suppress the error.
host.set_autoscalex_on(False)
par1.set_autoscalex_on(False)
par2.set_autoscalex_on(False)
But you have to manually adjust the x-limits later
par1.set_xlim(dates[0], dates[-1])
However, autofmt_xdata does not work. And I guess this is a bug in the
SubplotHost. I may take a more look later today.
Regards,
-JJ
On Sun, Jun 28, 2009 at 1:34 PM, David GUERINEAU<da...@gu...> wrote:
> Hi matplotlib_users !
>
> I'm David from Berlin, and believe I'm experiencing some problem with the
> SubplotHost module:
>
> I'm generating graphs from hudge databases of cpu and ethernet statistics,
> and I wanted to mix several graphs concerning ethernet statistics in the
> same figure,
> with time as x axis, and bytes-in, bytes-out, packets-in, packets-out and
> number of
> collisions as three different y axes, with three different scale.
>
> I took the inspiration from
>
> for the x axes and from
>
> http://matplotlib.sourceforge.net/examples/axes_grid/demo_parasite_axes2.html
> for the y axes
>
> The following code is a synthetic reproduction of the problem I'm
> experiencing (it is also attached):
>
> from matplotlib.dates import date2num
> from matplotlib import pyplot
> from matplotlib import pylab
> from mpl_toolkits.axes_grid.parasite_axes import SubplotHost
> from datetime import datetime
>
> dates = [ 733581.20833333337, 733581.20837962965, 733581.20842592593,
> 733581.20847222221, 733581.20851851848,
>    733581.20855324075, 733581.20858796302, 733581.2086342593,
> 733581.20866898145, 733581.20871527772]
> rxB = [054L, 130L, 144L, 54L, 36L, 9L, 35L, 43L, 85L, 43L]
> txB = [4L, 9L, 9L, 5L, 4L, 4L, 4L, 5L, 6L, 5L]
> rxP = [77, 228, 251, 112, 77, 42, 75, 97, 147, 91]
> txP = [61, 177, 188, 90, 61, 40, 64, 76, 113, 77]
> col = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
>
> ethPlot = pyplot
> fig = ethPlot.figure()
> host = SubplotHost(fig, 111)
>
> host.set_ylabel("kB/s")
> host.set_xlabel("Time")
>
> par1 = host.twinx()
> par2 = host.twinx()
>
> par1.set_ylabel("Packets/s")
>
> par2.axis["right"].set_visible(False)
>
> offset = 60, 0
> new_axisline = par2.get_grid_helper().new_fixed_axis
> par2.axis["right2"] = new_axisline(loc="right",
>           axes=par2,
>           offset=offset)
>
> par2.axis["right2"].label.set_visible(True)
> par2.axis["right2"].set_label("Collisions")
>
> par1.set_ylim(0, 6000)
> par2.set_ylim(0, 7000)
>
> host.axis([ dates[0], ( dates[0] + 0.041 ), -7000, 7000])
> par1.axis([ dates[0], ( dates[0] + 0.041 ), -10000, 10000])
> par2.axis([ dates[0], ( dates[0] + 0.041 ), -700, 700])
>
> fig.add_axes(host)
> ethPlot.subplots_adjust(right=0.75)
>
> drawRxByt, = host.plot_date(dates, rxB, 'g', tz=None, xdate=True,
> ydate=False, label="kB/s in")
> drawTxByt, = host.plot_date(dates, txB, 'b', tz=None, xdate=True,
> ydate=False, label="kB/s out")
> drawRxPaq, = par1.plot_date(dates, rxP, 'm', tz=None, xdate=True,
> ydate=False, label="packets/s in")
> drawTxPaq, = par1.plot_date(dates, txP, 'y', tz=None, xdate=True,
> ydate=False, label="packets/s out")
> drawColls, = par2.plot_date(dates, col, 'r', tz=None, xdate=True,
> ydate=False, label="collisions")
>
> fig.autofmt_xdate()
>
> host.set_xlabel("Time")
> host.set_ylabel("kB/s")
> par1.set_ylabel("Packets/s")
>
> host.legend()
>
> host.axis["left"].label.set_color(drawRxByt.get_color())
> host.axis["left"].label.set_color(drawTxByt.get_color())
> par1.axis["right"].label.set_color(drawRxPaq.get_color())
> par1.axis["right"].label.set_color(drawtxPaq.get_color())
> par2.axis["right2"].label.set_color(drawColls.get_color())
>
> ethPlot.draw()
> pylab.savefig( './test.png', dpi=(640/8))
>
>
>
>
> Maybe I do something wrong somewhere here, but other scripts that do the
> same for a single graphwork like a charm. So it's not a question of dataType
> or something. To compare with a working code, here is the first version of
> the fuction that does the job on single graphs without any problem :
>
> def drawEthGraph(filename, hdates, rxP, txP, rxB, txB, col):
>  ethPlot = pyplot
>  fig = ethPlot.figure()
>  ax = fig.add_subplot(111)
>  ax.plot_date(hdates, rxP, 'g', None, True, False)
>  ax.plot_date(hdates, txP, 'b', None, True, False)
>  ax.plot_date(hdates, rxB, 'g', None, True, False)
>  ax.plot_date(hdates, txB, 'b', None, True, False)
>  ax.plot_date(hdates, col, 'r', None, True, False)
>  ax.axis([ hdates[0], ( hdates[0] + 0.042 ), -7000, 7000])
>  ax.grid(True)
>  fig.autofmt_xdate()
>  pylab.savefig( filename, dpi=(640/8))
>
>
> I don't think I understand the whole process of generation, but I thought at
> least at the beginnig I was having a good feeling with this API.
> Now I wonder how to go around this. Maybe you'll have an idea :-o
>
> Best regards
>
> DvD
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
From: Ole S. <ole...@gm...> - 2009年07月02日 14:44:22
Attachments: sf.py
Hello Darren,
Darren Dale <dsd...@gm...> writes:
> I can't produce a segfault with the attached script. I have Qt-4.5.2,
> PyQt-4.5.1, and a checkout of the matplotlib trunk.
OK, in this context it seems to work.
I attach a script that shows the problem.
Run it, move the second diagram below the first, adjust their sizes so
that they take roughly the same size:
+---------------+-------+
| Diagram 1 | |
| | |
| | Hello |
+---------------+ World |
| Diagram 2 | |
| | |
| | |
+---------------+-------+
(you will see that the Diagram 2 will not alway update properly :-( [*] )
and then move the slider between the diagrams and the "Hello World"
label. There is a good chance that the program will segfault. If it does
not, increase the number of points in the diagrams.
BTW,could you reproduce my last example with diagram and scrollbar? It
still remains unsolved (and is reproduced here [*]).
Versions (all 64 bit):
openSUSE 11.1:
Qt Open Source Edition 4.4.3
PyQt 4.4.3
Matplotlib 0.98.5.2
Kubuntu 9.04:
Qt Open Source Edition 4.5.0
PyQt 4.4.4
Matplotlib 0.98.5.2
Best regards
Ole
From: Ole S. <ole...@gm...> - 2009年07月02日 14:44:16
Hello Darren,
Darren Dale <dsd...@gm...> writes:
> I can't produce a segfault with the attached script. I have Qt-4.5.2,
> PyQt-4.5.1, and a checkout of the matplotlib trunk.
OK, in this context it seems to work.
I attach a script that shows the problem.
Run it, move the second diagram below the first, adjust their sizes so
that they take roughly the same size:
+---------------+-------+
| Diagram 1 | |
| | |
| | Hello |
+---------------+ World |
| Diagram 2 | |
| | |
| | |
+---------------+-------+
(you will see that the Diagram 2 will not always update properly :-( [*] )
and then move the slider between the diagrams and the "Hello World"
label. There is a good chance that the program will segfault. If it does
not, increase the number of points in the diagrams.
BTW, could you reproduce my last example with diagram and scrollbar? It
still remains unsolved (and is reproduced here [*]).
Versions (all 64 bit):
openSUSE 11.1:
Qt Open Source Edition 4.4.3
PyQt 4.4.3
Matplotlib 0.98.5.2
Kubuntu 9.04:
Qt Open Source Edition 4.5.0
PyQt 4.4.4
Matplotlib 0.98.5.2
Best regards
Ole
------------------------------------8<---------------------------------------
import random
import sys
from PyQt4 import QtGui, QtCore
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure,SubplotParams
class AppForm(QtGui.QMainWindow):
 def __init__(self, parent=None):
 QtGui.QMainWindow.__init__(self, parent)
 self.create_dock_widgets()
 self.resize(700, 600)
 def create_dock_widgets(self):
 self.setDockNestingEnabled(True)
 w1 = QtGui.QDockWidget('Diagram 1', self)
 self.addDockWidget(QtCore.Qt.TopDockWidgetArea, w1)
 w1.setWidget(InnerDiagramWidget(self))
 w2 = QtGui.QDockWidget('Diagram 2', self)
 self.addDockWidget(QtCore.Qt.TopDockWidgetArea, w2)
 w2.setWidget(InnerDiagramWidget(self))
 w3 = QtGui.QDockWidget('Label', self)
 self.addDockWidget(QtCore.Qt.TopDockWidgetArea, w3)
 w3.setWidget(QtGui.QLabel('Hello World'))
 
class InnerDiagramWidget(FigureCanvas):
 def __init__(self, parent):
 fig = Figure()
 self.axes = fig.add_subplot(111)
 # Increase this number to rise your chances for a segfault.
 range = xrange(1000)
 l = [ random.randint(-5, 5) for i in range ]
 self.axes.plot(range, l, drawstyle='steps')
 FigureCanvas.__init__(self, fig)
 self.setParent(parent)
 FigureCanvas.setSizePolicy(self,
 QtGui.QSizePolicy.Expanding,
 QtGui.QSizePolicy.Expanding)
 FigureCanvas.updateGeometry(self)
a = QtGui.QApplication(sys.argv)
w = AppForm()
w.show()
a.exec_()
------------------------------------8<---------------------------------------
From: Michael D. <md...@st...> - 2009年07月02日 14:41:00
It is not surprising that memory usage is much lower without printing 
the plot. Very little is actually done by the "plot" command other than 
setting up a tree of objects that is later rendered during the printing 
process (where most of the work happens).
The attached script based on what you provided doesn't leak memory for 
me with matplotlib 0.98.5.2. It would appear that there is something 
else in your application triggering the leak. Perhaps there is 
something holding a reference longer than it should?
You can see from the attached massif plots that memory usage never 
becomes unbounded. It is normal for Python to delay deallocation for 
efficiency reasons. Calling gc.collect (the second graph) does help 
keep memory usage more compact however, if that is a primary concern.
Cheers,
Mike
Ralf Gommers wrote:
> Hi,
>
> I am working on a PyQt4 application with some embedded MPL figures, 
> and am also trying to save some figures as png's without displaying 
> them. I am observing huge memory increases (10s or 100s of Mb) the 
> moment I try to save a png. I reproduced the issue by combining two 
> mpl examples, 
> http://matplotlib.sourceforge.net/examples/user_interfaces/embedding_in_qt4.html 
> and http://matplotlib.sourceforge.net/examples/api/agg_oo.html. Full 
> code is attached. When pressing the "save figure" button, memory usage 
> shoots up, multiple clicks keep sending it higher (although not 
> monotonically).
>
> I tested on two different platforms
> - Matplotlib 98.5.2 and Python 2.6.2 on Ubuntu.
> - latest Enthought Python Distribution on Windows XP.
>
> The function that does the png saving is:
>
> def save_png():
> """Save an image as a png file"""
>
> pngpath = 'test_mplsave.png'
>
> fig = Figure()
> canvas = FigureCanvas(fig)
> ax = fig.add_subplot(111)
> x = arange(5e3)
> ax.plot(x, sin(x))
> canvas.print_figure(pngpath)
>
> ## tried all things commented out below, all makes no difference ##
> #fig.savefig(pngpath)
>
> #del(fig)
> #del(canvas)
> #del(ax)
>
> #import matplotlib.pyplot as plt
> #plt.close(fig)
>
> #import gc
> #gc.collect()
>
> Commenting out the canvas.print_figure line fixes the issue.
>
> Am I doing something obviously wrong, or mixing two incompatible ways 
> of doing things?
>
> Cheers,
> Ralf
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> ------------------------------------------------------------------------
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA
From: Darren D. <dsd...@gm...> - 2009年07月02日 13:17:39
Attachments: mpl_qt_buggy.py
On Thu, Jul 2, 2009 at 3:06 AM, Ole Streicher <ole...@gm...>wrote:
> Hi Brian,
>
> I have also some layout problems with the Qt4 backend. The worst one is
> a SegFault when adjusting the width.
>
> Brian Zambrano <br...@gm...> writes:
> > vbox = QVBoxLayout()
> > vbox.addWidget(self.canvas)
> > self.setLayout(vbox)
>
> Could you just try to add a second canvas to the layout?
>
> vbox = QVBoxLayout()
> vbox.addWidget(self.canvas1)
> vbox.addWidget(self.canvas2)
> self.setLayout(vbox)
>
> and then try to adjust the size by moving the separator between the
> central and right widget? In my code, I can reproduce a crash here on
> Linux. Also, depending on the speed (content) of the canvases, the width
> is not always ajusted correctly.
>
> I am still not sure whether this is fault of Qt, PyQt, or matplotlib.
>
I can't produce a segfault with the attached script. I have Qt-4.5.2,
PyQt-4.5.1, and a checkout of the matplotlib trunk.
Darren
From: Jeff W. <js...@fa...> - 2009年07月02日 12:09:10
Stephane Raynaud wrote:
> Hi (Jeff),
>
>
> I recently performed updates to matplotlib and basemap.
> >From this time, I have a random and reccurent error when I create a
> Basemap instance.
> Here is one example :
>
> 
>>>> from mpl_toolkits.basemap import Basemap
>>>> Basemap(**{'lon_0': -4.5250263598141309, 'urcrnrlat': 49.140154231678416, 'projection': 'cyl', 'llcrnrlon': -7.2999968048710144, 'lat_ts': 47.468781818043126, 'urcrnrlon': -1.7500559147572474, 'area_thresh': 0.1, 'llcrnrlat': 45.797409404407844, 'resolution': 'i', 'lat_0': 47.468781818043126})
>>>> 
>
> GEOS_ERROR: TopologyException: found non-noded intersection between
> 8.67583 4.66292, 8.70206 4.66997 and 8.71039 4.67664, 8.67708 4.64997
> 8.70205 4.66997
>
> It depends on the area and the resolution (polygons).
>
> I have version '0.99.3' of basemap.
>
> Any idea?
> 
Stephane: I'd say it's an issue with your geos library installation 
that basemap is linking to. I don't see that error using your example 
for geos 2.2.3 or geos 3.0.3.
I'd suggest rebuilding the geos library, then recompiling basemap.
-Jeff
From: Stephane R. <ste...@gm...> - 2009年07月02日 10:28:26
Hi (Jeff),
I recently performed updates to matplotlib and basemap.
>From this time, I have a random and reccurent error when I create a
Basemap instance.
Here is one example :
>>> from mpl_toolkits.basemap import Basemap
>>> Basemap(**{'lon_0': -4.5250263598141309, 'urcrnrlat': 49.140154231678416, 'projection': 'cyl', 'llcrnrlon': -7.2999968048710144, 'lat_ts': 47.468781818043126, 'urcrnrlon': -1.7500559147572474, 'area_thresh': 0.1, 'llcrnrlat': 45.797409404407844, 'resolution': 'i', 'lat_0': 47.468781818043126})
GEOS_ERROR: TopologyException: found non-noded intersection between
8.67583 4.66292, 8.70206 4.66997 and 8.71039 4.67664, 8.67708 4.64997
8.70205 4.66997
It depends on the area and the resolution (polygons).
I have version '0.99.3' of basemap.
Any idea?
-- 
Stephane Raynaud
From: Ole S. <ole...@gm...> - 2009年07月02日 07:07:15
Hi Brian,
I have also some layout problems with the Qt4 backend. The worst one is
a SegFault when adjusting the width.
Brian Zambrano <br...@gm...> writes:
> vbox = QVBoxLayout()
> vbox.addWidget(self.canvas)
> self.setLayout(vbox)
Could you just try to add a second canvas to the layout?
vbox = QVBoxLayout()
vbox.addWidget(self.canvas1)
vbox.addWidget(self.canvas2)
self.setLayout(vbox)
and then try to adjust the size by moving the separator between the
central and right widget? In my code, I can reproduce a crash here on
Linux. Also, depending on the speed (content) of the canvases, the width
is not always ajusted correctly.
I am still not sure whether this is fault of Qt, PyQt, or matplotlib.
Thanks
Ole
From: Brian Z. <br...@gm...> - 2009年07月02日 05:02:51
Hi all,
I'm having a problem with resizing a FigureCanvas using the Qt4 backend when
the FigureCanvas is used alongside some dock widgets. What happens is that
the figure never grows beyond the original size set when the window or other
dock widgets are expanded. It's probably easier to look at a screenshot
taken after I resized (grew) things a bit:
http://brianz.s3.amazonaws.com/mpl_buggy.png
The simple code I used to generate and test this is located here:
http://brianz.s3.amazonaws.com/mpl_qt_buggy.py.txt
To get the FigureCanvas to resize at all, I'm passing the resizeEvent from
the parent widget down to the FigureCanvas's resizeEvent.
Am I doing something incorrectly here or is this a bug?
Thanks,
BZ
From: Fabrice S. <si...@lm...> - 2009年07月02日 04:14:13
Le mercredi 01 juillet 2009 à 10:13 +0200, Sandro Tosi a écrit :
> On Tue, Jun 30, 2009 at 14:12, Fabrice Silva<si...@lm...> wrote:
> > Le lundi 29 juin 2009 à 16:11 -0400, Jae-Joon Lee a écrit :
> >> In the svn version of matplotlib, there are some helper classes to
> >> ease this job a bit.
> > Thanks for your pointer. Sadly the mpl.toolkits.axes_grid is not shipped
> > by debian package, and downloading it requires other stuff. So I adapted
> 
> I'm the debian maintainer for matplotlib: if you need something
> missing in Debian, get in touch with us, for example reporting a bug
> against matplotlib requesting this toolkit.
> 
> I didn't check further, but probably it was not release because of
> this phrase: "In the svn version of matplotlib".
Hi Sandro,
thanks for packaging matplotlib for debian. I hope you did not
understand my words as a blame. In fact mpl_toolkits.axes_grid is still
in svn only and not in 0.98.x
I tried to download the mpl.toolkits.axes_grid module files, but I had
errors raising when importing that...
-- 
Fabrice Silva <si...@lm...>
LMA UPR CNRS 7051
2 messages has been excluded from this view by a project administrator.

Showing results of 28

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