Re: [Matplotlib-users] show() not returning when figure closed if function called from another module

2008-01-14 Thread Henry Proudhon
On Thu, 2008-01-10 at 14:10 +0100, Henry Proudhon wrote:
 Hi Matplotlib users,
 
 I'm experiencing some problems when closing a figure (I'm using
 matplotlib 0.91.0).
 the function is working correctly when invoked inside the module where
 it is defined:
 
 from pylab import *
 
 def test():
 t = arange(0.0, 1.0+0.01, 0.01)
 s = cos(2*2*pi*t)
 plot(t, s, '-', lw=2)
 show()
 print 'after show'
 
 if __name__ == '__main__':
 print test()
 
 now if I call test() from another module, the figure closes but show()
 does not return ('after show' does not get printed) so the execution is
 stuck.
 
 Can somebody shed some light here, I'm really missing something...
 
 Thanks a lot
 Henry

In case somebody has the same problem, I worked around this by embedding
a matplotlib figure in a gtk window but it's a lot heavier.

Henry


-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] (no subject)

2008-01-14 Thread Michael Droettboom
I've committed these changes to matplotlib SVN, and it should make it 
into the next release of 0.91.x, if we decide to make one.

You may be right that Qt's SVG support is iffy (I don't know enough 
about the spec to be sure, so I'm not conceding that), but either way it 
doesn't bother me to make changes that help SVG work in more places. 
It's like all those pragmatic web developers who have to make things 
work with IE...

Thanks for your help.  I'll try to get the Qt SVG demo installed here so 
I can test with that the next time our SVG code changes.

Cheers,
Mike

Christiaan Putter wrote:
 Hi Michael,
 
 Sorry for getting back to you only now, and thanks for the help.
 
 If you have Qt installed there should be an sample Svg viewer app in the 
 examples somewhere.  If you'd like I can send it to you somehow, just 
 let me know.
 
 I tested the new .svg you sent me it's rendering the same in Firefox and 
 Qt.  So it works.
 
 Once again thanks for your help and let me know if I can send you 
 something to help with testing in Qt.  Personally I think Qt's support 
 for svg is still a bit iffy.
 
 Have a nice,
 
 Christiaan
 
 On 04/01/2008, *Michael Droettboom* [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED] wrote:
 
 Can you please test the attached SVG file?
 
 Cheers,
 Mike
 
 Michael Droettboom wrote:
   Between 0.90 and 0.91, the SVG backend was changed to store the glyph
   outlines of the characters in the SVG file itself.  (This is on by
   default, but can be turned off with the rc parameter
   svg.embed_char_paths).  This helps make the SVG files much more
   portable, as the need to install the math fonts has long been a
 FAQ on
   this list.  I've been doing all my testing with Firefox and
 Inkscape.
   Is there a simple Qt-based SVG viewer I could add to my testing
 regimen?
  
   I won't pretend to be an expert on the SVG spec, but it does say
 this:
  
http://www.w3.org/TR/SVG/struct.html#Head
  
   
  
   To provide some SVG user agents with an opportunity to implement
   efficient implementations in streaming environments, creators of SVG
   content are encouraged to place all elements which are targets of
 local
   URI references within a 'defs' element which is a direct child of
 one of
   the ancestors of the referencing element. For example:
  
   ?xml version=1.0 standalone=no?
   !DOCTYPE svg PUBLIC -//W3C//DTD SVG 1.1//EN
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd;
   svg width=8cm height=3cm
 xmlns=http://www.w3.org/2000/svg;
  descLocal URI references within ancestor's 'defs'
 element./desc
  defs
linearGradient id=Gradient01
  stop offset=20% stop-color=#39F /
  stop offset=90% stop-color=#F3F /
/linearGradient
  /defs
  rect x=1cm y=1cm width=6cm height=1cm
fill=url(#Gradient01)  /
  !-- Show outline of canvas using 'rect' element --
  rect x=.01cm y=.01cm width=7.98cm height= 2.98cm
fill=none stroke=blue stroke-width=.02cm /
   /svg
  
   View this example as SVG (SVG-enabled browsers only)
  
   In the document above, the linear gradient is defined within a
 'defs'
   element which is the direct child of the 'svg' element, which in
 turn is
   an ancestor of the 'rect' element which references the linear
 gradient.
   Thus, the above document conforms to the guideline.
  
   
  
   So we are complying to that part of the spec.  The spec doesn't
 seem to
   say anything about whether the defs must appear before or after their
   use -- but maybe I just can't find the relevant paragraph.
  
   In any case, this should be easy enough to fix on matplotlib's
 end, and
   certainly won't break compliance with the spec.  I'll have a
 look, and
   may come back to you for help with testing with Qt if you don't
 mind.
  
   Cheers,
   Mike
  
   Christiaan Putter wrote:
   Hi there,
  
   Just an update regarding the svg problem I was having:
  
   I simply went back to 0.90 and that's working now.
  
   Would still be nice to know if the svg output from matplotlib
 complies
   with the standard or whether it's Qt that's messing things up.
  
   Merry x-mass!
  
   cputter
  
  
  
   On 21/12/2007, *Christiaan Putter* [EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]
   mailto: [EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED] wrote:
  
   Hi guys and girls,
  
   Quick question regarding matplotlib's svg backend...
  
   I've embeded pyhton into c++ and Qt's (4.3.3) svg support is
 having
   some problems with .svg files created by matplotlib.  Text 

Re: [Matplotlib-users] matplotlib/__init__.py

2008-01-14 Thread Darren Dale
On Monday 14 January 2008 02:27:28 am Tom Johnson wrote:
 I was looking at rc_params() and saw

 if not os.path.exists(fname):
 message = 'could not find rc file; returning defaults'
 ret =  dict([ (key, tup[0]) for key, tup in defaultParams.items()])
 warnings.warn(message)
 return ret

 Is this correct?  It seems that it returns a regular dictionary rather
 than an instance of RcParams.

You have a sharp eye. It is incorrect, but it turns out that block of code is 
never executed (unless the user deletes the default rc file from 
site-packages/matplotlib/mpl-data). But I changed it in the trunk to return 
an RcParams object. Thanks for the report.

Darren 

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Weibull plot

2008-01-14 Thread BL
   Hi,

I need to make some Weibull analysis and I wanted to make it with numpy and
scipy.
Theses analysis  are  based on  Weibull plots :
   - on X, time values are reported according to a log scale
   - on Y, probability (F) is reported according to a  special scale, which
lets Weibull random variables fit on a line.
So the pair (t, F) should be plotted on ( ln(t),  ln( -ln(1-F)) )

You can find an example of weibull plot here :
http://www.itl.nist.gov/div898/handbook/eda/section3/weibplot.htm

Here is my way to  make weibull plot with matplotlib :

[code]

from numpy import *
from matplotlib.ticker import FuncFormatter
import pylab as p

# I'm used to  the ln notation for the natural log
from numpy import log as ln

# Paramters
beta = 5.2
eta = 12

# Genrate 10 numbers following a Weibull distribution
x = eta *random.weibull(beta, size=10)
F = 1 - exp( -(x/eta)**beta )

# Estimate Weibull parameters
lnX = ln(x)
lnF = ln( -ln(1-F) )
a, b = polyfit(lnF, lnX, 1)
beta0 = 1/a
eta0  = exp(b)

# ideal line
F0 = array([1e-3, 1-1e-3])
x0 = eta0 * (-ln(1-F0))**(1/beta0)
lnF0 = ln(-ln(1-F0))


# Weibull plot
p.figure()
ax = p.subplot(111)
p.semilogx(x, lnF, bs)
p.plot(x0, lnF0, 'r-', label=beta= %5G\neta = %.5G % (beta0, eta0) )
p.grid()
p.xlabel('x')
p.ylabel('Cumulative Distribution Function')
p.legend(loc='lower right')

# ticks
def weibull_CDF(y, pos):
return %G %% % (100*(1-exp(-exp(y

formatter = FuncFormatter(weibull_CDF)
ax.yaxis.set_major_formatter(formatter)

yt_F = array([ 0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5,
   0.6, 0.7, 0.8, 0.9, 0.95, 0.99])
yt_lnF = ln( -ln(1-yt_F))
p.yticks(yt_lnF)

p.show()

[/code]

This works, but I 'm pretty sure this could be improved :

1)  Is there a way to use matplotlib.transforms to handle the convertion
between F and y=ln(-ln(1-F)) ?

2) I would like to have vertical lines for major and minor ticks. How can I
do that ?

3) In this case, the log notation for the X axis is not pertinent. How could
I switch to a more common floating point notation ?

Any hints ?

Thanks

-- 
LB
-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] IOError: [Errno 2] No such file or directory: 'etopo20data.gz'

2008-01-14 Thread Jeff Whitaker
j. vickroy wrote:
 Hello, I am a first-time user of matplotlib.

 When trying to run the plotmap.py example, the following traceback is 
 generated:

  plotmap.py
 Traceback (most recent call last):
  File C:\Documents and Settings\jim.vickroy\My 
 Documents\Projects\High-latitudes D-region\plotmap.py, line 13, in 
 module
topoin = load('etopo20data.gz')
  File C:\Python25\Lib\site-packages\matplotlib\mlab.py, line 1252, in 
 load
fh = cbook.to_filehandle(fname)
  File C:\Python25\Lib\site-packages\matplotlib\cbook.py, line 236, in 
 to_filehandle
fh = gzip.open(fname, flag)
  File C:\Python25\lib\gzip.py, line 49, in open
return GzipFile(filename, mode, compresslevel)
  File C:\Python25\lib\gzip.py, line 95, in __init__
fileobj = self.myfileobj = __builtin__.open(filename, mode or 'rb')
 IOError: [Errno 2] No such file or directory: 'etopo20data.gz'

 How do I obtain this file and where should it reside?

 I have downloaded proj446_win32_bin.zip and unzipped it, but I do not 
 see any such file.

 I have also attempted to search this user-group archive for references 
 to etopo20data.gz but repeatedly get an Unable to connect to Search 
 Server error so I do not know what I'm doing incorrectly.

 I have installed:
 - matplotlib-0.91.2.win32-py2.5.exe
 - basemap-0.9.9.1.win32-py2.5.exe
 - httplib2-0.4.0.zip
 for use with Python 2.5.1.

 I apologize if this has been previously addressed.

 Thanks,
 -- jv
   

It's in the examples directory of the basemap source tarball 
(basemap-0.9.9.1.tar.gz).  The examples directory is not included with 
the binary installers.

-Jeff

-- 
Jeffrey S. Whitaker Phone  : (303)497-6313
Meteorologist   FAX: (303)497-6449
NOAA/OAR/PSD  R/PSD1Email  : [EMAIL PROTECTED]
325 BroadwayOffice : Skaggs Research Cntr 1D-124
Boulder, CO, USA 80303-3328 Web: http://tinyurl.com/5telg


-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] IOError: [Errno 2] No such file or directory: 'etopo20data.gz'

2008-01-14 Thread j. vickroy
Hello, I am a first-time user of matplotlib.

When trying to run the plotmap.py example, the following traceback is 
generated:

 plotmap.py
Traceback (most recent call last):
 File C:\Documents and Settings\jim.vickroy\My 
Documents\Projects\High-latitudes D-region\plotmap.py, line 13, in 
module
   topoin = load('etopo20data.gz')
 File C:\Python25\Lib\site-packages\matplotlib\mlab.py, line 1252, in 
load
   fh = cbook.to_filehandle(fname)
 File C:\Python25\Lib\site-packages\matplotlib\cbook.py, line 236, in 
to_filehandle
   fh = gzip.open(fname, flag)
 File C:\Python25\lib\gzip.py, line 49, in open
   return GzipFile(filename, mode, compresslevel)
 File C:\Python25\lib\gzip.py, line 95, in __init__
   fileobj = self.myfileobj = __builtin__.open(filename, mode or 'rb')
IOError: [Errno 2] No such file or directory: 'etopo20data.gz'

How do I obtain this file and where should it reside?

I have downloaded proj446_win32_bin.zip and unzipped it, but I do not 
see any such file.

I have also attempted to search this user-group archive for references 
to etopo20data.gz but repeatedly get an Unable to connect to Search 
Server error so I do not know what I'm doing incorrectly.

I have installed:
- matplotlib-0.91.2.win32-py2.5.exe
- basemap-0.9.9.1.win32-py2.5.exe
- httplib2-0.4.0.zip
for use with Python 2.5.1.

I apologize if this has been previously addressed.

Thanks,
-- jv

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] x axis alignment with bar graph

2008-01-14 Thread John Harrison


I have some code that produces a series of graphs of data over time.   
For the most part it works well, but for certain combinations of  
dates the two plots do not line up, due to the width of the bars in  
the first subplot.  What is the best way for force my second  
subplot's x axis to be identical to that of the first subplot?

Thanks!

Here is minimal code reproducing the problem:

import matplotlib
from datetime import *
import time
from pylab import *


def toOrd(strDate):
return datetime(*time.strptime(strDate,%m/%d/%y)[0:5]).toordinal()

def main():

startDate = toOrd(05/24/05)
endDate = toOrd(11/21/06)

dates = range(startDate,endDate,7)
figure(1)

axis = subplot(211,axisbelow=True)
plot_date(dates,dates,visible = False)
axis.bar(dates,dates, width=3.0)

axis = subplot(212,axisbelow=True)
plot_date(dates,dates) #,'-',color = priceColor)

show()



if __name__ == '__main__':
main()


-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] re sizing behaviour like in Mircrocal Origin

2008-01-14 Thread DaFudl

I integrated mpl into my wxPython application for plotting simple lines.
I would like my canvas to behave differently when the containing window is
being resized.
At the moment all text, all lines, all markers, the legend... remain in the
same state (same size and thickness) regardless whether the plot is small or
big. As a result the plot looks fine at one size only.
I need all elements to be resized with the window just like it happens in
Microcal's scientific plotting software origin. Everything should resize
as a whole.
Also, it would be great to keep the aspect ratio of the plot when resizing
and zooming. I could not figure out how to do that. Using methods like
apply_aspect and set_adjustable is not enough.

Is there a way to make those things work?

Thanks,
Jurgen
-- 
View this message in context: 
http://www.nabble.com/resizing-behaviour-like-in-Mircrocal-Origin-tp14814996p14814996.html
Sent from the matplotlib - users mailing list archive at Nabble.com.


-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] re sizing behaviour like in Mircrocal Origin

2008-01-14 Thread Michael Droettboom
DaFudl wrote:
 I integrated mpl into my wxPython application for plotting simple lines.
 I would like my canvas to behave differently when the containing window is
 being resized.
 At the moment all text, all lines, all markers, the legend... remain in the
 same state (same size and thickness) regardless whether the plot is small or
 big. As a result the plot looks fine at one size only.
 I need all elements to be resized with the window just like it happens in
 Microcal's scientific plotting software origin. Everything should resize
 as a whole.

I think what you're asking for would require a pretty major overhaul of 
matplotlib.  The fact that all the text etc. remains the same size is a 
deliberate design decision, and actually requires a lot more work to 
make fast enough, since a lot more must be recalculated with each 
redraw, rather than just multiplying everything by a scale factor.

All that said, you could experiment with rendering to a vector format 
(e.g. Pdf or Svg) and then have wxPython render it directly with each 
window resize.  (This would be much the same way that resizing a PDF 
generated by matplotlib in Acrobat Reader scales everything as a whole).

Alternatively, you could try using a backend (e.g. Cairo) that allows 
you to push a global affine transformation onto the transformation 
stack.  (At present, the Agg backends don't have that functionality -- 
but it could be added, especially since the recent overhaul of 
transformations in general in matplotlib.)  That way, you could tell the 
underlying rendering engine (below matplotlib) to scale everything up 
and down for any subsequent commands it receives from matplotlib.

But, anyway you slice it, I think you're looking at getting your hands 
dirty in some matplotlib internals.  I'm happy to help if you want to 
work through it, but I don't think I would have time myself.

 Also, it would be great to keep the aspect ratio of the plot when resizing
 and zooming. I could not figure out how to do that. Using methods like
 apply_aspect and set_adjustable is not enough.

That seems to be easy enough to do in the window resize callback -- just 
programmatically force-resize the window to the desired aspect ratio.

Cheers,
Mike

-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] re sizing behaviour like in Mircrocal Origin

2008-01-14 Thread John Hunter
On Jan 14, 2008 3:55 PM, Michael Droettboom [EMAIL PROTECTED] wrote:

 I think what you're asking for would require a pretty major overhaul of
 matplotlib.  The fact that all the text etc. remains the same size is a

matplotlib is designed to scale in the way Jurgen requests with DPI
(eg fonts, line thicknesses and the like scale with DPI).

In [65]: fig = figure()

In [66]: plot([1,2,3])
Out[66]: [matplotlib.lines.Line2D instance at 0xbf965ec]

In [67]: fig.dpi.set(200)

In [68]: fig.canvas.draw()

with a little work, one could hook into the resize mechanism to
increase the dpi to create the desired effect w/o a major overhaul.
By default what happens is the width and height in inches are changed
with a resize but the dpi is held constant.  One could trick
matplotlib by computing a new width, height in inches, and a new dpi
so that the resized canvas width in pixels is the requested size based
on the resize event but the dpi is increased to create the microcal
effect

JDH

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] re sizing behaviour like in Mircrocal Origin

2008-01-14 Thread Chris Sontag
Jurgen,

I generally lurk on the list, but I'll speak up now since I have 
basically done what you are talking about.  I integrated MPL (TkAgg) 
into an existing application that resizes (PyRAF).

The path I chose isn't particularly pretty, but it does the job and 
sounds like it might be flexible enough for what you are doing.  I 
created an adapter class which wraps the MPL calls.  The adapter is what 
the existing application calls to make plots instead of calling MPL 
directly.  The adapter also keeps a normalized (0-1) copy of all plot 
data arrays (and any lines and other items).  When the canvas is 
resized, I go through all my lines (Line2D), patches (Rectangle), and 
text, and scale each based on the new canvas dimensions.  Then the new 
items are inserted directly into the Figure object, replacing the old 
values.  This resizes everything so that it is correct when redrawn.  I 
was initially concerned about performance, but the resizings are very 
smooth (thanks matplotlib!).  You could also enforce an aspect ratio 
this way.

I had to write this adapter not because of the resizing issue, but due 
to the constraints of the existing application with which I was 
working.  It did however make resizing easy.  As long as your plotted 
items are relatively simple (lines, patches, text), this works very 
well.  Using more complicated items like legends would not work as well 
unless you either allowed them to stay a static size or manually 
composed them of simpler objects.  In general, this idea is probably 
more work than John's DPI suggestions.

Chris

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] re sizing behaviour like in Mircrocal Origin

2008-01-14 Thread Michael Droettboom
Doh!  Why didn't I think of that?

Mike

John Hunter wrote:
 On Jan 14, 2008 3:55 PM, Michael Droettboom [EMAIL PROTECTED] wrote:
 
 I think what you're asking for would require a pretty major overhaul of
 matplotlib.  The fact that all the text etc. remains the same size is a
 
 matplotlib is designed to scale in the way Jurgen requests with DPI
 (eg fonts, line thicknesses and the like scale with DPI).
 
 In [65]: fig = figure()
 
 In [66]: plot([1,2,3])
 Out[66]: [matplotlib.lines.Line2D instance at 0xbf965ec]
 
 In [67]: fig.dpi.set(200)
 
 In [68]: fig.canvas.draw()
 
 with a little work, one could hook into the resize mechanism to
 increase the dpi to create the desired effect w/o a major overhaul.
 By default what happens is the width and height in inches are changed
 with a resize but the dpi is held constant.  One could trick
 matplotlib by computing a new width, height in inches, and a new dpi
 so that the resized canvas width in pixels is the requested size based
 on the resize event but the dpi is increased to create the microcal
 effect
 
 JDH

-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] re sizing behaviour like in Mircrocal Origin

2008-01-14 Thread Christopher Barker

Michael Droettboom wrote:
 All that said, you could experiment with rendering to a vector format 
 (e.g. Pdf or Svg) and then have wxPython render it directly with each 
 window resize. 

If you did want to go that route, someone wrote a SVG renderer for 
wxPython -- search the wxpython-users list to find it.

I do question why you want this -- MPLs current behavior generally makes 
the most sense -- you generally want the same font sizes and line 
thicknesses in a GUI app regardless of how large your Window is.

Unless you really need it to look that same as it would on paper, for 
instance.

-Chris




-- 
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

[EMAIL PROTECTED]

-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Problem installing 0.91.2 egg on OS X 10.4

2008-01-14 Thread Russell E. Owen
In article 
[EMAIL PROTECTED],
 Charlie Moad [EMAIL PROTECTED] wrote:

 I have replaced the binary with a working version.

I'm running into an odd issue with that version (at least). If I unzip 
the egg and run easy_install on it it ends up in site-packages with odd 
permissions:
% pwd
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-pack
ages
% ls -l
drwx-- 9 rowen  admin 306 Jan 14 16:59 
matplotlib-0.91.2-py2.5-macosx-10.3-fat.egg

The permissions inside look normal so this is easy to fix with chmod, 
but it seems strange. Any idea if I am doing something wrong or if 
something is wrong with the package?

-- Russell


-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] xlim changes without explicit calling of set_xlim

2008-01-14 Thread sunzen w.
Hi, all
I found a problem about xlim. It sometimes changes when there is no explicit
calling of set_xlim.
My application scenario is :  at some situation replot the second one of two
subplots, which shares x axis with the first one. To finish the replot
operation, i first use clear() method to remove the previous image, and then
plot  a new one. The problem is that, there is  an 'unexpected' change of
xlim.
The attached code is tried to reproduce the problem. I'm sorry for that it
is not small enough and that it even seems ugly. But after all, the problem
can be showed by it. Its text output simply shows the 'unexpected' changes.
As it can be seen, plot operation causes change of xlim. While, i'd like to
see that xlim changes only when responding to call ing set_xlim().
What's the possible reason?  How should i do to avoid the unexpected
change?  As the sample code shows, the unexpected change can be reverted by
calling set_xlim(). but this solution doesn't seem  a graceful one.
Thank you for your any help.

-- 
sunzen
freedom  enjoyment
#!/usr/bin/env python
#
#
import gtk

from matplotlib.figure import Figure
from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg as FigureCanvas
from matplotlib.backends.backend_gtkagg import NavigationToolbar2GTKAgg as NavigationToolbar

from matplotlib.numerix import *
from matplotlib.ticker import FuncFormatter

class BaseView(FigureCanvas):
def __init__(self, numgraphs = 2):
self.axlist = []
self.fig = Figure()
self.axlist.append(self.fig.add_subplot(numgraphs, 1 ,1))
for i in range(2, numgraphs + 1):
self.axlist.append(self.fig.add_subplot(numgraphs, 1 ,i, sharex = self.axlist[0],autoscale_on = False))
FigureCanvas.__init__(self, self.fig)

for ax in self.axlist:
self.set_formatter(ax)

def set_formatter(self,ax):
def formatter_b(x, pos = None): 
nano = long(x)
return str(nano)

xmajorFormatter = FuncFormatter(formatter_b)

axis = ax.get_xaxis()
axis.set_major_formatter(xmajorFormatter)

class ViewOne(BaseView):
def __init__(self):
dxlim = (0,3797217271)
BaseView.__init__(self, numgraphs = 2)
self.axlist[0].set_xlim(dxlim)
xlim = self.axlist[0].get_xlim()
print initial xlim , xlim
self.axlist[1].set_ylim(0,3)
ts = (0, 200, 3000, 40, 30,3797217271)
y1 = (1, 1, 1,1,1,1)
y2 = (0,1,1,1,0,1)

self.axlist[0].plot(ts,y1,picker = 5)
self.axlist[1].plot(ts,y2,picker = 5)
xlim = self.axlist[0].get_xlim()
print xlim after plotting, xlim
if xlim != dxlim:
self.axlist[1].set_xlim(dxlim)
print reset xlim for plotting causes change

def replot_ax2(self):
self.axlist[1].clear()
dxlim = (0,3797217271)
xlim = self.axlist[1].get_xlim()
print xlim after clear operation, xlim
if xlim != dxlim:
self.axlist[1].set_xlim(dxlim)
print reset xlim for clear causes change? 

ts = (0, 200, 3000, 40, 30,3797217271)
y1 = (1, 2, 1,2,1,2)
self.set_formatter(self.axlist[1])
self.axlist[1].plot(ts,y1,picker = 5)

xlim = self.axlist[0].get_xlim()
print xlim after replotting, xlim
if xlim != dxlim:
self.axlist[1].set_xlim(dxlim)
print reset xlim for replotting causes change

self.draw()

class testapp():
def __init__(self):
self.window = gtk.Window()
self.window.set_default_size(800,600)

self.nb = gtk.Notebook()
self.window.add(self.nb)

self.vbox = gtk.VBox()
self.view = ViewOne()
self.vbox.pack_start(self.view, True, True, 0)

navbar = NavigationToolbar(self.view, self.window)
self.vbox.pack_start(navbar, False, False,0)

self.nb_label0 = gtk.Label(page0)
self.nb.append_page(self.vbox,self.nb_label0)

self.view.mpl_connect('pick_event', self.onpick)

def main(self):
self.window.show_all()
gtk.main()

def onpick(self,event):
picked_axes = event.mouseevent.inaxes
if picked_axes == self.view.axlist[0]:
pass
else:
self.view.replot_ax2()


if __name__  ==  __main__:
app = testapp()
app.main()


-
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users