Re: [Matplotlib-users] Interactive mode broken in Qt4Agg backend?

2013-01-09 Thread Yannick Copin
Hi,

Yannick Copin  writes:
> Is it a bug in Qt4Agg, or an unimplemented feature? Is there any way 
> other than switching back to GTKAgg specifically?

just a follow-up and conclusion: I create a matplotlib issue for this
(https://github.com/matplotlib/matplotlib/issues/1646), and the use of
pyplot.pause in place of pyplot.draw seems to help.

Cheers,

Yannick




--
Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
and much more. Keep your Java skills current with LearnJavaNow -
200+ hours of step-by-step video tutorials by Java experts.
SALE $49.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122612 
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Interactive mode broken in Qt4Agg backend?

2012-12-19 Thread Yannick Copin

Hi,

I used to make animated figures generated with scripts similar to the 
one attached. It works fine with GTKAgg backend, but does not work with 
QT4Agg one: the figure just flashes at the end of the animation!


Is it a bug in Qt4Agg, or an unimplemented feature? Is there any way 
other than switching back to GTKAgg specifically?


Cheers,

Yannick

PS: I now about the recent Animation module, but I don't want to update 
all my scripts to this new framework.
#!/usr/bin/env python

import numpy as N
import time

import matplotlib
#matplotlib.use("GTKAgg") # OK
matplotlib.use("Qt4Agg") # Not working
#matplotlib.use("WXAgg") # Buggy

import matplotlib.pyplot as P

P.ion()

fig = P.figure()
ax = fig.add_subplot(1,1,1)

x = N.linspace(0,20)
line, = ax.plot(x, N.sin(x))

for i in range(25):
print i
time.sleep(.04)
line.set_data(x, N.sin(x+i))
P.draw()

--
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] HSL image (?)

2012-07-17 Thread Yannick Copin
On 07/17/2012 03:32 PM, Benjamin Root wrote:
> Short question: is there any (simple) way to generate "spectral" images
> such as the ones in http://astro.u-strasbg.fr/~koppen/discharge/
>  ?

I have a 1st version of what I had in mind:

https://gist.github.com/3131381

Any comments on how to do it the proper way (e.g. good use of normalize 
and colormaps) is welcome!

Cheers,


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] HSL image (?)

2012-07-17 Thread Yannick Copin
Hi List,

Short question: is there any (simple) way to generate "spectral" images 
such as the ones in http://astro.u-strasbg.fr/~koppen/discharge/ ?

Long version: say I have 1D-array l, which I would like to visualize as 
the L component of an HSL image, where the HS component would e.g. come 
from the standard "spectral" cmap (that's what I think I understood of 
the problem, but maybe what I said is just nonsense...). How should I 
proceed?

Cheers,
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucleaire de Lyon (IN2P3 - France)
   // \\  Tel: (33/0) 472 431 968 AIM: YnCopin ICQ: 236931013
  /(   )\ http://snovae.in2p3.fr/ycopin/
   ^`~'^


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Unicode greek letters

2011-11-22 Thread Yannick Copin
Hi,

I'm confused regarding the use of Unicode characters in matplotlib. I tried 
the following:



#!/usr/bin/env python
# -*- coding: utf-8 -*-

import matplotlib.pyplot as P

ax = P.gca()
ax.set_title(u"OK: ±×÷, Not OK: αβγδ")
P.show()



The 1st "OK" characters are displayed correctly, while the "Not OK" ones are 
(well) not (while they are available from the Gnome Character Map). I have a 
standard matplotlib over a standard Ubuntu distribution...

I'm aware I could use "r$\alpha$" and so on, but I'd like to stick to unicode 
characters... Is there any hope to use unicode greek characters?

Cheers,
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucléaire de Lyon
   // \\  Université de Lyon - CNRS-IN2P3
  /(   )\ AIM: YnCopin ICQ: 236931013
   ^`~'^  http://snovae.in2p3.fr/ycopin/



--
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Taylor diagram

2010-12-27 Thread Yannick Copin

Hi,


mdekauwe wrote:
> 
> Has anyone ever managed to draw a taylor diagram in Matplotlib? For
> example like this
> 
> http://www.mathworks.com/matlabcentral/fx_files/20559/2/taylordiag_fig.jpg
> 

here is my try [ http://old.nabble.com/file/p30540085/taylorDiagram.py
taylorDiagram.py ] using matplotlib 1.0 (requires floating_axes).  This is
heavily based on the 
http://matplotlib.sourceforge.net/examples/axes_grid/demo_floating_axes.html
floating_axes demo  (which I find tricky).

I'm sure there're plenty of way to improve the TaylorDiagram class, but I'm
not familiar with all the bells and whistles of axes projections
(furthermore, I'm not sure Taylor diagrams are exactly what I need...). So
feel free to ellaborate!

Cheers,

Yannick


-- 
View this message in context: 
http://old.nabble.com/Taylor-diagram-tp30421393p30540085.html
Sent from the matplotlib - users mailing list archive at Nabble.com.


--
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] introducing mpl_toolkits.gridspec

2010-05-12 Thread Yannick Copin
Hi,

Jae-Joon Lee  writes:

>  gridspec is a module that implements matplotlib’s Subplot slightly
> differently. Current matplotlib’s Subplot only allows a Subplot to
> occupy a single cell of the n x m grid. gridspec enables a Subplot to
> occupy multiple cells.

Very interesting indeed. If I may comment on the usability, I wish function
gridspec.subplot could become directly a method of Gridspec. The current 
example:

gs = gridspec.GridSpec(3, 3)
ax1 = gridspec.subplot(gs[0, :])
ax2 = gridspec.subplot(gs[1,:-1])
ax3 = gridspec.subplot(gs[1:, -1])
ax4 = gridspec.subplot(gs[-1,0])
ax5 = gridspec.subplot(gs[-1,-2])

could be written in a much simpler way then, such as:

gs = gridspec.GridSpec(3, 3)
ax1 = gs[0, :]
ax2 = gs[1,:-1]
ax3 = gs[1:, -1]
ax4 = gs[-1,0]
ax5 = gs[-1,-2]

I would LOVE it!

+1 for getting these functionnalities straight in matplotlib: subplot management
always take a decent part of my scripts...

Cheers,


--

___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] hist(x,bins) is not properly autoscaled in y

2010-02-23 Thread Yannick Copin
Hi,

I think there's an issue of axes autoscaling in y when plotting histograms 
with specified bins, eg.


from pylab import *

bins = linspace(-5,5,100)

hist(randn(1000), bins=bins,
  histtype='step', ec='r')
hist(randn(1), bins=bins,
  histtype='step', ec='g')

show()


Note that the y-axis is not properly autoscaled to handle the 2nd histogram. 
Could this be a regression after correction of Debian Bug #503148 ? (see 
http://www.mail-archive.com/matplotlib-de...@lists.sourceforge.net/msg04020.html)

Cheers,
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucleaire de Lyon (IN2P3 - France)
   // \\  Tel: (33/0) 472 431 968 AIM: YnCopin ICQ: 236931013
  /(   )\ http://snovae.in2p3.fr/ycopin/
   ^`~'^

--
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Sankey diagram

2010-02-10 Thread Yannick Copin

Hi,

following my own post, I attach an upgraded version of the sankey.py script to 
draw single-direction Sankey diagrams. It now supports multiple inputs and 
double-sided diagrams (see attached example). Let me know if you find it 
useful, and/or have any comment.


Cheers,
--
   .~.   Yannick COPIN  (o:>*  Doctus cum libro
   /V\   Institut de physique nucleaire de Lyon (IN2P3 - France)
  // \\  Tel: (33/0) 472 431 968 AIM: YnCopin ICQ: 236931013
 /(   )\ http://snovae.in2p3.fr/ycopin/
  ^`~'^
#!/usr/bin/env python

__author__ = "Yannick Copin "
__version__ = "Time-stamp: <10/02/2010 16:49 yco...@lyopc548.in2p3.fr>"

import numpy as N

def sankey(ax,
   outputs=[100.], outlabels=None,
   inputs=[100.], inlabels='',
   dx=40, dy=10, outangle=45, w=3, inangle=30, offset=2, **kwargs):
"""Draw a Sankey diagram.

outputs: array of outputs, should sum up to 100%
outlabels: output labels (same length as outputs),
   or None (use default labels) or '' (no labels)
inputs and inlabels: similar for inputs
dx: horizontal elongation
dy: vertical elongation
outangle: output arrow angle [deg]
w: output arrow shoulder
inangle: input dip angle
offset: text offset
**kwargs: propagated to Patch (e.g. fill=False)

Return (patch,[intexts,outtexts])."""

import matplotlib.patches as mpatches
from matplotlib.path import Path

outs = N.absolute(outputs)
outsigns = N.sign(outputs)
outsigns[-1] = 0   # Last output

ins = N.absolute(inputs)
insigns = N.sign(inputs)
insigns[0] = 0 # First input

assert sum(outs)==100, "Outputs don't sum up to 100%"
assert sum(ins)==100, "Inputs don't sum up to 100%"

def add_output(path, loss, sign=1):
h = (loss/2+w)*N.tan(outangle/180.*N.pi) # Arrow tip height
move,(x,y) = path[-1]   # Use last point as reference
if sign==0: # Final loss (horizontal)
path.extend([(Path.LINETO,[x+dx,y]),
 (Path.LINETO,[x+dx,y+w]),
 (Path.LINETO,[x+dx+h,y-loss/2]), # Tip
 (Path.LINETO,[x+dx,y-loss-w]),
 (Path.LINETO,[x+dx,y-loss])])
outtips.append((sign,path[-3][1]))
else:   # Intermediate loss (vertical)
path.extend([(Path.CURVE4,[x+dx/2,y]),
 (Path.CURVE4,[x+dx,y]),
 (Path.CURVE4,[x+dx,y+sign*dy]),
 (Path.LINETO,[x+dx-w,y+sign*dy]),
 (Path.LINETO,[x+dx+loss/2,y+sign*(dy+h)]), # Tip
 (Path.LINETO,[x+dx+loss+w,y+sign*dy]),
 (Path.LINETO,[x+dx+loss,y+sign*dy]),
 (Path.CURVE3,[x+dx+loss,y-sign*loss]),
 (Path.CURVE3,[x+dx/2+loss,y-sign*loss])])
outtips.append((sign,path[-5][1]))

def add_input(path, gain, sign=1):
h = (gain/2)*N.tan(inangle/180.*N.pi) # Dip depth
move,(x,y) = path[-1]   # Use last point as reference
if sign==0: # First gain (horizontal)
path.extend([(Path.LINETO,[x-dx,y]),
 (Path.LINETO,[x-dx+h,y+gain/2]), # Dip
 (Path.LINETO,[x-dx,y+gain])])
xd,yd = path[-2][1] # Dip position
indips.append((sign,[xd-h,yd]))
else:   # Intermediate gain (vertical)
path.extend([(Path.CURVE4,[x-dx/2,y]),
 (Path.CURVE4,[x-dx,y]),
 (Path.CURVE4,[x-dx,y+sign*dy]),
 (Path.LINETO,[x-dx-gain/2,y+sign*(dy-h)]), # Dip
 (Path.LINETO,[x-dx-gain,y+sign*dy]),
 (Path.CURVE3,[x-dx-gain,y-sign*gain]),
 (Path.CURVE3,[x-dx/2-gain,y-sign*gain])])
xd,yd = path[-4][1] # Dip position
indips.append((sign,[xd,yd+sign*h]))

outtips = []# Output arrow tip dir. and positions
urpath = [(Path.MOVETO,[0,100])]# 1st point of upper right path
lrpath = [(Path.LINETO,[0,0])]  # 1st point of lower right path
for loss,sign in zip(outs,outsigns):
add_output(sign>=0 and urpath or lrpath, loss, sign=sign)

indips = [] # Input arrow tip dir. and positions
llpath = [(Path.LINETO,[0,0])]  # 1st point of lower left path
ulpath = [(Path.MOVETO,[0,100])]# 1st point of upper left path
for gain,sign in zip(ins,insigns)[::-1]:
add_input(sign<=0 and llpath or ulpath, gain, sign=sign)

def revert(path):
"""A path is not just revertable by path[::-1] because of B

[Matplotlib-users] Sankey diagram

2010-02-09 Thread Yannick Copin

Hi List,

I made a script to draw very simple (single-direction single-input 
single-sided single-everything) Sankey diagrams (attached). I think I 
could share, if it can be of any use...


Cheers,

Yannick
#!/usr/bin/env python
# Time-stamp: <2010-02-10 01:49:08 ycopin>

import numpy as N
import matplotlib.pyplot as P
import matplotlib.patches as mpatches
from matplotlib.path import Path

def sankey(ax, losses, labels=None,
   dx=40, dy=10, angle=45, w=3, dip=10, offset=2, **kwargs):
"""Draw a Sankey diagram.

losses: array of losses, should sum up to 100%
labels: loss labels (same length as losses),
or None (use default labels) or '' (no labels)
dx: horizontal elongation
dy: vertical elongation
angle: arrow angle [deg]
w: arrow shoulder
dip: input dip
offset: text offset
**kwargs: propagated to Patch (e.g. fill=False)

Return (patch,texts)."""

assert sum(losses)==100, "Input losses don't sum up to 100%"

def add_loss(loss, last=False):
h = (loss/2+w)*N.tan(angle/180.*N.pi) # Arrow tip height
move,(x,y) = path[-1]   # Use last point as reference
if last:# Final loss (horizontal)
path.extend([(Path.LINETO,[x+dx,y]),
 (Path.LINETO,[x+dx,y+w]),
 (Path.LINETO,[x+dx+h,y-loss/2]), # Tip
 (Path.LINETO,[x+dx,y-loss-w]),
 (Path.LINETO,[x+dx,y-loss])])
tips.append(path[-3][1])
else:   # Intermediate loss (vertical)
path.extend([(Path.LINETO,[x+dx/2,y]),
(Path.CURVE3,[x+dx,y]),
(Path.CURVE3,[x+dx,y+dy]),
(Path.LINETO,[x+dx-w,y+dy]),
(Path.LINETO,[x+dx+loss/2,y+dy+h]), # Tip
(Path.LINETO,[x+dx+loss+w,y+dy]),
(Path.LINETO,[x+dx+loss,y+dy]),
(Path.CURVE3,[x+dx+loss,y-loss]),
(Path.CURVE3,[x+dx/2+loss,y-loss])])
tips.append(path[-5][1])

tips = []   # Arrow tip positions
path = [(Path.MOVETO,[0,100])]  # 1st point
for i,loss in enumerate(losses):
add_loss(loss, last=(i==(len(losses)-1)))
path.extend([(Path.LINETO,[0,0]),
 (Path.LINETO,[dip,50]), # Dip
 (Path.CLOSEPOLY,[0,100])])
codes,verts = zip(*path)
verts = N.array(verts)

# Path patch
path = Path(verts,codes)
patch = mpatches.PathPatch(path, **kwargs)
ax.add_patch(patch)

# Labels
if labels=='':  # No labels
pass
elif labels is None:# Default labels
labels = [ '%2d%%' % loss for loss in losses ]
else:
assert len(labels)==len(losses)

texts = []
for i,label in enumerate(labels):
x,y = tips[i]   # Label position
last = (i==(len(losses)-1))
if last:
t = ax.text(x+offset,y,label, ha='left', va='center')
else:
t = ax.text(x,y+offset,label, ha='center', va='bottom')
texts.append(t)

# Axes management
ax.set_xlim(verts[:,0].min()-10, verts[:,0].max()+40)
ax.set_ylim(verts[:,1].min()-10, verts[:,1].max()+20)
ax.set_aspect('equal', adjustable='datalim')
ax.set_xticks([])
ax.set_yticks([])

return patch,texts

if __name__=='__main__':

losses = [10.,20.,5.,15.,10.,40.]
labels = ['First','Second','Third','Fourth','Fifth','Hurray!']
labels = [ s+'\n%d%%' % l for l,s in zip(losses,labels) ]

fig = P.figure()
ax = fig.add_subplot(1,1,1)

patch,texts = sankey(ax, losses, labels, fc='g', alpha=0.2)
texts[1].set_color('r')
texts[-1].set_fontweight('bold')

P.show()
--
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Size of ellipses in EllipseCollection

2010-02-02 Thread Yannick Copin
Eric Firing wrote:
> Maybe I am misunderstanding, but the EllipseCollection in the example is 
> panning and zooming as I expect.  The shapes and orientations are 
> staying the same while the scale expands and contracts with the x-axis.
> 
> The problem is that the option you are looking for does not exist yet.   
> I am not sure yet whether what you need is identical to an option I 
> added to quiver (from which I partially derived EllipseCollection).  I 
> suspect it is.

Thanks, I now understand better what is the main goal of EllipseCollection: in 
a quiver-like use, you don't want indeed the plotted ellipses to change size 
and/or orientation with scaling and zooming.

> Do you want width to scale with x and height to scale with y?  And the 
> angle to scale such that a 45-degree angle always corresponds to equal 
> increments in x and in y, all in data units?

Yes, in the context of error-ellipses, I would like to see my ellipses scale 
with x and y, as they do when I plot them individually as Ellipse patches (see 
example scripts, the blue ellipses are what I would like to obtain using an 
EllipseCollection), something like "units='data'" in EllipseCollection...

Cheers,
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucleaire de Lyon (IN2P3 - France)
   // \\  Tel: (33/0) 472 431 968 AIM: YnCopin ICQ: 236931013
  /(   )\ http://snovae.in2p3.fr/ycopin/
   ^`~'^

--
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Size of ellipses in EllipseCollection

2010-02-01 Thread Yannick Copin

Hi,

I would like to plot lots of error ellipses on my plot. I thought I could use 
an EllipseCollection to do so, but I didn't manage to get the ellipse sizes, 
expressed in data units, right (see test script attached).


When using a plain list of Ellipse's, everything looks fine:

ells = [ P.matplotlib.patches.Ellipse(xy=xyi,
  width=wi, height=hi,
  angle=ai,
  edgecolor='b',
  facecolor='b',
  alpha=0.3)
 for xyi,wi,hi,ai in zip(xy,w,h,a)]
for ell in ells:
ax.add_artist(ell)

But when using EllipseCollection (as explained in 
http://matplotlib.sourceforge.net/examples/pylab_examples/ellipse_collection.html), 



coll = P.matplotlib.collections.EllipseCollection(widths=w,
  heights=h,
  angles=a,
  units='x',
  offsets=xy,
  transOffset=ax.transData,
  edgecolor='r',
  facecolor='r',
  alpha=0.3)
ax.add_collection(coll)

the size of the ellipses (expressed in data units) appears incorrect, and 
depends furthermore of the aspect ratio of the figure (try pan/zoom or resize 
the interactive window).


I naively thought the two approaches should give the same result... Did I miss 
something in the way to use EllipseCollections?


Cheers,
--
   .~.   Yannick COPIN  (o:>*  Doctus cum libro
   /V\   Institut de physique nucleaire de Lyon (IN2P3 - France)
  // \\  Tel: (33/0) 472 431 968 AIM: YnCopin ICQ: 236931013
 /(   )\ http://snovae.in2p3.fr/ycopin/
  ^`~'^
#!/usr/bin/env python

import numpy as N
import matplotlib.pyplot as P

x = N.arange(5,dtype='d') # Position
y = x / 2

w = x/3 # Width
h = x/4 # Height
a = x*10# PA [deg]

xy = N.vstack((x,y)).T  # (n,2)

ax = P.subplot(1,1,1)

# Using EllipseCollection: size is incorrect, and depends on aspect ratio
coll = P.matplotlib.collections.EllipseCollection(widths=w,
  heights=h,
  angles=a,
  units='x',
  offsets=xy,
  transOffset=ax.transData,
  edgecolor='r',
  facecolor='r',
  alpha=0.3)
ax.add_collection(coll)

# Using plain list of Ellipse's: correct behavior
ells = [ P.matplotlib.patches.Ellipse(xy=xyi,
  width=wi, height=hi,
  angle=ai,
  edgecolor='b',
  facecolor='b',
  alpha=0.3)
 for xyi,wi,hi,ai in zip(xy,w,h,a)]
for ell in ells:
ax.add_artist(ell)

ax.autoscale_view()

P.show()
--
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] How to change tick labels?

2010-01-27 Thread Yannick Copin
Hi,

I have a very crowded plot with lots of subplots, and tick labels tend to 
overlap. I wanted to drop e.g. the 1st and last x-tick labels for each 
subplot, doing something like:

ax = P.subplot(1,1,1)
ax.plot([1,2,3,2,1,2,3])
ax.set_xticklabels(['']+
[ lbl.get_text() for lbl in ax.get_xticklabels()[1:-1] ]+
[''])

This works in interactive 'ipython -pylab', but this does not work anymore in 
a script: in my script, the tick label returned by ax.get_xticklabels() are 
all empty strings:

print [ lbl.get_text() for lbl in ax.get_xticklabels() ]

returns

['', '', '', '', '', '', '']

It seems the tick text strings are filled in only at the very last moment (at 
show() time?).

Any help out there?

Cheers,
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucléaire de Lyon
   // \\  Université de Lyon - CNRS-IN2P3
  /(   )\ AIM: YnCopin ICQ: 236931013
   ^`~'^  http://snovae.in2p3.fr/ycopin/



--
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Regression in scatter plot?

2009-12-10 Thread Yannick Copin
Hi,

according to the documentation, scatter should accept a 1D float array for 
color kwarg. Therefore, I thought the following code would work (and I think 
it worked at some point in the past; I'm currently using matplotlib 0.99.0):

import numpy as N
from matplotlib import pyplot as P

x = N.random.randn(100)
y = N.random.randn(100)
z = N.random.randn(100)**2

fig = P.figure()
ax = fig.add_subplot(1,1,1)

cmap = P.matplotlib.cm.jet
norm = P.matplotlib.colors.Normalize(vmin=0, vmax=1)

sc = ax.scatter(x,y,
 color=z,
 cmap=cmap,
 norm=norm,
 )

But this crashes with the following error:

[...]
/data/ycopin/Softs/local/lib/python2.4/site-packages/matplotlib/colors.pyc in 
to_rgba_array(self, c, alpha)
 377 if isinstance(c, np.ndarray):
 378 if c.ndim != 2 and c.dtype.kind not in 'SU':
--> 379 raise ValueError("Color array must be 
two-dimensional")
 380 if (c.ndim == 2 and c.shape[1] == 4 and c.dtype.kind 
== 'f'):
 381 if (c.ravel() > 1).any() or (c.ravel() < 0).any():

ValueError: Color array must be two-dimensional

So my question is: is the documentation just outdated, or is it a regression 
in scatter?

Cheers,
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucléaire de Lyon
   // \\  Université de Lyon - CNRS-IN2P3
  /(   )\ AIM: YnCopin ICQ: 236931013
   ^`~'^  http://snovae.in2p3.fr/ycopin/



--
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Error in mpl.axes.set_default_color_cycle

2009-05-29 Thread Yannick Copin
Hi,

I have an error while trying to use mpl.axes.set_default_color_cycle to 
define my own color cycle based on the set1 colormap:

In [1]: set1 = array([[228,55, 77, 152,255,255,166,247,153],
...:   [26, 126,175,78, 127,255,86, 129,153],
...:   [28, 184,74, 163,0,  51, 40, 191,153]],'d').T / 255.

In [2]: mpl.axes.set_default_color_cycle(set1)
---
AttributeErrorTraceback (most recent call last)

/autofs/home/ycopin/ in ()

/usr/lib/python2.5/site-packages/matplotlib/axes.py in 
set_default_color_cycle(clist)
 113 """
 114 _process_plot_var_args.defaultColors = clist[:]
--> 115 rcParams['lines.color'] = clist[0]
 116
 117 class _process_plot_var_args:

/usr/lib/python2.5/site-packages/matplotlib/__init__.pyc in 
__setitem__(self, key, val)
 588 instead.'% (key, alt))
 589 key = alt
--> 590 cval = self.validate[key](val)
 591 dict.__setitem__(self, key, cval)
 592 except KeyError:

/usr/lib/python2.5/site-packages/matplotlib/rcsetup.pyc in validate_color(s)
 156 def validate_color(s):
 157 'return a valid color arg'
--> 158 if s.lower() == 'none':
 159 return 'None'
 160 if is_color_like(s):

AttributeError: 'numpy.ndarray' object has no attribute 'lower'

I'm using matplotlib 0.98.3 but I checked on the SVN repository that the 
offending lines ("rcParams['lines.color'] = clist[0]","if s.lower() == 
'none'") are still there.

Cheers.
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucleaire de Lyon (IN2P3-France)
   // \\  Lawrence Berkeley National Laboratory
  /(   )\ aim:YnCopin icq:236931013 http://snovae.in2p3.fr/ycopin/
   ^`~'^

--
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA, & Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] subplot

2009-05-18 Thread Yannick Copin
Alan G Isaac  writes:
> On 5/18/2009 4:27 PM Yannick Copin apparently wrote:
> > super-mongo WINDOW command (e.g.
> > http://www.astro.princeton.edu/~rhl/sm/sm.html#SYN83)
> 
> The functionality is good,
> but the syntax is awful.

It might not be crystal clear indeed at 1st glance, but once you get used 
to it (as I got used to sm-WINDOW command), it is fairly trivial to 
pre-visualize. And IMHO it would have the advantage of conciseness while 
an easy extension to subplot.

> subplot2grid(loc=(0,0), rowspan=2, colspan=3)
> 
> would confuse nobody (or so I claim).

Most probably... but me: I did not catch what subplot2grid(loc=(0,0), 
rowspan=2, colspan=3) should actually do. What would be the syntax for 
the following layouts?

+-+-+
| | ax2 |
| ax1 +-+
| | ax3 |
+-+-+

+---+---+
|   |   |
|  ax1  |ax3|
|   |   |
+---+---+
|ax2|
+---+

Cheers.


--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] subplot

2009-05-18 Thread Yannick Copin
Hi,

Jae-Joon Lee  writes:
> I had a few off-list conversation with Alan, and I'm also quite agree
> with him for this issue.
[...]
>  issue 2)  It is not easy (actually impossible) to make an axes
> spanning multiple cells.

Regarding this 2nd issue, I appreciated long ago the flexibility and ease-of-use
offered by super-mongo WINDOW command (e.g.
http://www.astro.princeton.edu/~rhl/sm/sm.html#SYN83). Basically, this would be
the same as accepting a tuple as plotNum argument in matplotlib subplot(numRows,
numCols, plotNum) to specify the extent of the composed subplot in terms of
atomic subplots, e.g.

ax1 = subplot(2,2,(1,3))
ax2 = subplot(2,2,2)
ax3 = subplot(2,2,4)

would produce the following layout:

+---+---+
|   |  ax2  |
|   |   |
|  ax1  +---+
|   |  ax3  |
|   |   |
+---+---+

or 

ax1 = subplot(3,3,(1,5))
ax2 = subplot(3,3,(7,9))
ax3 = subplot(3,3,(3,6))

for 

+---+---+
|   |   |
|  ax1  |ax3|
|   |   |
+---+---+
|ax2|
+---+

My current naive implementation is the following:

def add_axes(fig, nrow, ncol, extent, **kwargs):

pars = fig.subplotpars
figW = pars.right-pars.left # Fig size
figH = pars.top-pars.bottom
subW = figW / (ncol + pars.wspace*(ncol-1)) # Sub-axes size
subH = figH / (nrow + pars.hspace*(nrow-1))
sepW = pars.wspace*subW # Separations
sepH = pars.hspace*subH

axL,axR,axB,axT = 1,0,1,0
for num in extent:
assert 0http://p.sf.net/sfu/businessobjects
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Bugs in twinx

2009-04-07 Thread Yannick Copin
Hi,

I would like to report two bugs when using twinx with log-scale axes.


from pylab import *

rcParams['ytick.major.size'] = 12
rcParams['ytick.minor.size'] = 8

ax1 = subplot(2,1,1,
   title="Bug twinx + semilogy")
ax1.plot(randn(100)**2,'b+')
ax1.semilogy()
setp(ax1.yaxis.get_minorticklines() + \
  ax1.yaxis.get_majorticklines(),
  color='b')

ax2 = ax1.twinx()
ax2.plot(randn(100)**0.5,'r.')
ax2.semilogy()
setp(ax2.yaxis.get_minorticklines() + \
  ax2.yaxis.get_majorticklines(),
  color='r')

ax3 = subplot(2,1,2,
   title="Bug twinx + semilogx")
x = arange(100)+1
ax3.plot(x,randn(100)**2,'b+')
ax3.semilogx()
setp(ax3.get_xticklabels(), color='b')

ax4 = ax3.twinx()
ax4.plot(x,randn(100)**0.5,'r.')
setp(ax4.get_xticklabels(), color='r')

show()


Top: Bug twinx + semilogy.

See the blue and red ticks on the left y-axis: the red ticks should not 
be there (the right y-axis is correct). Note that the problem does not 
occur when using linear scales (just comment out the 2 semilogy lines).

Bottom: Bug twinx + semilogx.

The twinx axis (ax4) is linear by default and does not inherit the log 
scale from the parent axis (ax3).

This is with matplotlib 0.98.3 on Ubuntu 8.10. Maybe these bugs have 
been corrected in more recent versions...

Cheers.
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucleaire de Lyon (IN2P3-France)
   // \\  Lawrence Berkeley National Laboratory
  /(   )\ aim:YnCopin icq:236931013 http://snovae.in2p3.fr/ycopin/
   ^`~'^

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] pylab or not... crashes or not

2008-12-02 Thread Yannick Copin
Salut Eric,

> Date: Mon, 01 Dec 2008 20:08:00 +0100
> From: Eric Emsellem <[EMAIL PROTECTED]>
> Subject: [Matplotlib-users] pylab or not... crashes or not
> 
> - when I start a session with "ipython -pylab" I often get crashes with my
> session. When I mean "often", it means really often like once everything 1/2h 
> or
> so. A crash means that the command I just sent gets stuck and the only way for
> me to get it back is to kill the PID of the ipython process...
[...]
> IPython 0.8.1 -- An enhanced Interactive Python.

I would say the pb is actually coming from ipython. I experienced it while 
using ipython-0.8.1, but I guess it disappeared starting with ipython-0.8.3 
(see http://ipython.scipy.org/moin/WhatsNew083: "Multithreaded shells (used 
e.g. by matplotlib interaction) have been improved, reducing the possibility 
of corner case deadlocks."). I'm now using 0.8.4 and I don't remember I ever 
had this pb again.

See you! (and congrats ;-) )
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucleaire de Lyon (IN2P3 - France)
   // \\  Tel: (33/0) 472 431 968 AIM: YnCopin ICQ: 236931013
  /(   )\ http://snovae.in2p3.fr/ycopin/
   ^`~'^

-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] LineCollection instance has no attribute 'get_lines'

2008-07-02 Thread Yannick Copin
Hi,

I thought this AttributeError when using legend was solved a long time ago 
(see http://article.gmane.org/gmane.comp.python.matplotlib.general/10306) but 
I still face it in matplotlib 0.91.3, released 4 weeks ago (and this does not 
seem to have changed in recent version of collections.py).

Can someone tell me what is the actual situation?

Cheers.
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucleaire de Lyon (IN2P3 - France)
   // \\  Tel: (33/0) 472 431 968 AIM: YnCopin ICQ: 236931013
  /(   )\ http://snovae.in2p3.fr/ycopin/
   ^`~'^

-
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Square/Circle markers with transparent, faces?

2007-03-16 Thread Yannick Copin
Hi,

John T Whelan <[EMAIL PROTECTED]> wrote:
> set markerfacecolor (a.k.a. mfc) = 'None' (make sure you include the 
> quotes).

This works with plot:

plot(randn(5),randn(5), 'bo', mfc="None", mec='b')

but not with scatter:

scatter(randn(5),randn(5), edgecolor='b', facecolor='None')

returns:

--> 141 self._facecolors = colorConverter.to_rgba_list(c)
TypeError: c must be a matplotlib color arg or a sequence of them

Is there a way to make 'transparent' markers with scatter? (this relates 
to an old thread, 
http://thread.gmane.org/gmane.comp.python.matplotlib.general/7842, but 
I'd like to know if there was any news about that?)

Cheers.
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucleaire de Lyon (IN2P3 - France)
   // \\  Tel: (33/0) 472 431 968 AIM: YnCopin ICQ: 236931013
  /(   )\ http://snovae.in2p3.fr/ycopin/
   ^`~'^

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Automatic minor ticks

2007-03-05 Thread Yannick Copin
Hi,

I take the opportunity of a recent thread about axes label to reiterate 
a question I posted some time ago:

Is there a way (best would be a default parameters in matplotlibrc) to 
automagically plot minor ticks?

I *thought* I knew how to add them manually using e.g.
ax.xaxis.set_minor_locator, but I dont know how to handle them 
automatically. E.g. my simplest guest was to use LinearLocator:

x = randn(100)
y = randn(100)
plot(x,y,'bo')
ax = gca()
ax.xaxis.set_minor_locator(LinearLocator())

But these minor ticks wont (necessarily) be coherent with the automatic 
major ticks:

L = ax.xaxis.get_major_locator()
l = ax.xaxis.get_minor_locator()

print L()
[-4. -3. -2. -1.  0.  1.  2.  3.  4.]

print l()
[-4.  -3.2 -2.4 -1.6 -0.8  0.   0.8  1.6  2.4  3.2  4. ]

(see, it will look like |...:.|.:...|...:.|.:...)

How could I do to have some minor ticks automagically coherent with the 
automated major ticks?

Cheers.
-- 
.~.   Yannick COPIN  (o:>*  Doctus cum libro
/V\   Institut de physique nucleaire de Lyon (IN2P3 - France)
   // \\  Tel: (33/0) 472 431 968 AIM: YnCopin ICQ: 236931013
  /(   )\ http://snovae.in2p3.fr/ycopin/
   ^`~'^

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Minor ticks by default

2007-02-09 Thread Yannick Copin
Hi,

sorry if this sounds like a stupid question, but I couldn't find any 
answer on the web: Is there a way to adjust some default parameters in 
matplotlibrc so that some minor ticks are displayed automagically? I 
think I know how to add them manually using e.g. 
ax.xaxis.set_minor_locator, but I would like them to be displayed 
automatically with default locations "as smart as" major tick locations 
(i.e. not overpacked or underpacked).

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] bar charts (Margherita Vittone wiersma)

2007-01-26 Thread Yannick Copin
Hi,

> i have made bar charts but I was wondering if there is a way to show
> on top of each bar the real content/counts, like a label; I generate
> static plots so the dynamic showing of the counts on focusing on the
> bar does not help me.

Cannot you just add the counts manually? E.g.

x,y = arange(5),randn(5)
bar(x,y, align='center')
for i in range(5):
 text(x[i],y[i],'%f' % y[i], horizontalalignment='center')

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _||||   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Open symbols in scatter plot

2007-01-04 Thread Yannick Copin
Hi,

I'd like to plot 'open symbols' (i.e. not color filled) w/ scatter. 
Unfortunately, scatter doesn't support None color:

scatter(randn(5),randn(5), s=(50,), c=None, edgecolor='r')

or

scatter(randn(5),randn(5), s=(50,), facecolor=None, edgecolor='r')

fail w/

ValueError: to_rgb: Invalid rgb arg "None"

Any hint on how to do it? Could None color be supported by scatter, or 
should I set the markersize of each symbol from a plot command individually?

Cheers.

PS: this is a similar question as 
http://sourceforge.net/mailarchive/message.php?msg_id=11876753, but 
there was no answer it seems...
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] OverflowError while plotting dates

2006-12-11 Thread Yannick Copin
Hi,

on the following test case:

import numpy
import pylab
from matplotlib.dates import DateFormatter, HourLocator, MinuteLocator

fig = pylab.figure()
ax = fig.add_subplot(1,1,1)

tics = numpy.linspace(1.3,1.6,4)
for tic in tics:
 t = numpy.linspace(tic, tic+0.01, 100)
 ax.plot(t, numpy.random.randn(len(t)), 'b.')

ax.xaxis.set_major_formatter(DateFormatter("%H:%M"))
ax.xaxis.set_major_locator(HourLocator(interval=2))
ax.xaxis.set_minor_locator(MinuteLocator(interval=30))

pylab.show()

I got an OverflowError:

Traceback (most recent call last):
   File 
"/usr/lib/python2.4/site-packages/matplotlib/backends/backend_gtk.py", 
line 284, in expose_event
 self._render_figure(self._pixmap, w, h)
   File 
"/usr/lib/python2.4/site-packages/matplotlib/backends/backend_gtkagg.py", 
line 73, in _render_figure
 FigureCanvasAgg.draw(self)
   File 
"/usr/lib/python2.4/site-packages/matplotlib/backends/backend_agg.py", 
line 392, in draw
 self.figure.draw(renderer)
   File "/usr/lib/python2.4/site-packages/matplotlib/figure.py", line 
544, in draw
 for a in self.axes: a.draw(renderer)
   File "/usr/lib/python2.4/site-packages/matplotlib/axes.py", line 
1063, in drawa.draw(renderer)
   File "/usr/lib/python2.4/site-packages/matplotlib/axis.py", line 545, 
in draw
 majorTicks = self.get_major_ticks()
   File "/usr/lib/python2.4/site-packages/matplotlib/axis.py", line 683, 
in get_major_ticks
 numticks = len(self.major.locator())
   File "/usr/lib/python2.4/site-packages/matplotlib/dates.py", line 
450, in __call__
 self.rule.set(dtstart=dmin-delta, until=dmax+delta)
   File "/usr/lib/python2.4/site-packages/dateutil/relativedelta.py", 
line 289, in __rsub__
 return self.__neg__().__radd__(other)
   File "/usr/lib/python2.4/site-packages/dateutil/relativedelta.py", 
line 276, in __radd__
 microseconds=self.microseconds))
OverflowError: date value out of range

Note that if everything works properly if:
* I start tics at 1.4 instead of 1.3
* *or* I remove calls to set_major_locator and set_minor_locator

Now, if I set tics=numpy.linspace(1.4,2.6,4), I got the following error:

Traceback (most recent call last):
   File 
"/usr/lib/python2.4/site-packages/matplotlib/backends/backend_gtk.py", 
line 284, in expose_event
 self._render_figure(self._pixmap, w, h)
   File 
"/usr/lib/python2.4/site-packages/matplotlib/backends/backend_gtkagg.py", 
line 73, in _render_figure
 FigureCanvasAgg.draw(self)
   File 
"/usr/lib/python2.4/site-packages/matplotlib/backends/backend_agg.py", 
line 392, in draw
 self.figure.draw(renderer)
   File "/usr/lib/python2.4/site-packages/matplotlib/figure.py", line 
544, in draw
 for a in self.axes: a.draw(renderer)
   File "/usr/lib/python2.4/site-packages/matplotlib/axes.py", line 
1063, in drawa.draw(renderer)
   File "/usr/lib/python2.4/site-packages/matplotlib/axis.py", line 545, 
in draw
 majorTicks = self.get_major_ticks()
   File "/usr/lib/python2.4/site-packages/matplotlib/axis.py", line 683, 
in get_major_ticks
 numticks = len(self.major.locator())
   File "/usr/lib/python2.4/site-packages/matplotlib/dates.py", line 
450, in __call__
 self.rule.set(dtstart=dmin-delta, until=dmax+delta)
   File "/usr/lib/python2.4/site-packages/matplotlib/dates.py", line 
391, in set
 self._rrule = rrule(**self._construct)
   File "/usr/lib/python2.4/site-packages/dateutil/rrule.py", line 238, 
in __init__
 dtstart = dtstart.replace(microsecond=0)
ValueError: month must be in 1..12

except if once again, I remove calls to set_major_locator and 
set_minor_locator... (I definitely dont understand this last error about 
an invalid month, since I thought times were supposedly in days since 
0001-01-01 00:00:00 UTC.)

Last thing, is there any reason why t=0 is an invalid number of days? Eg.

In [4]: num2date(0)

/usr/lib/python2.4/site-packages/matplotlib/dates.py in num2date(x, tz)
 213 """
 214 if tz is None: tz = _get_rc_timezone()
--> 215 if not iterable(x): return _from_ordinalf(x, tz)
 216 else: return [_from_ordinalf(val, tz) for val in x]
 217

/usr/lib/python2.4/site-packages/matplotlib/dates.py in 
_from_ordinalf(x, tz)
 152 if tz is None: tz = _get_rc_timezone()
 153 ix = int(x)
--> 154 dt = datetime.datetime.fromordinal(ix)
 155 remainder = float(x) - ix
 156 hour, remainder = divmod(24*remainder, 1)

ValueError: ordinal must be >= 1

First valid date number is indeed 1, but this corresponds to 0001-01-01 
00:00:00 UTC:

In [10]: num2date(1).isoformat()
Out[10]: '0001-01-01T00:00:00+00:00'

and not to 0001-01-02. I suspect the documentation for num2date is 
therefore not accurate... or is 

[Matplotlib-users] Sourceforge archives display [Was: two y axes via twinx and legends]

2006-12-11 Thread Yannick Copin
Hi,

belinda thom <[EMAIL PROTECTED]> wrote on 
[EMAIL PROTECTED]:
> Also, the mail archives I'm viewing look terrible: line breaks aren't  
> in the usual place, things are presented with >'s in them (which  
> would make sense if the line breaks were preserved, b/c they  
> correspond to pieces of prior email content). I'm using Safari 2.0.4  
> w/Mac OS X 10.4.8. Do others see the same thing, and if the answer is  
> yes, are folks satisfied with this state of affairs?

I guess I have the same pb here on firefox 1.5.0.8 under linux. I let 
sourceforge know about that 
(http://sourceforge.net/tracker/?func=detail&aid=1613041&group_id=1&atid=21).
 
Maybe you can add comments to that issue.

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Merge colorbars from imshow and contour

2006-12-11 Thread Yannick Copin
Hi,

Eric Firing wrote:
>> in a case similar to matplotlib-0.87.7/examples/contour_demo.py 
>> (figure 4), would it be possible to merge to two colorbars (a 
>> continuous one from imshow, a discrete one from contour) into a single 
>> colorbar? Indeed, in that case, the two colorbars are mostly redundant.
> 
> Yes, lines can be superimposed on a continuous colorbar.  The demo is 
> not ideal; I was mainly showing that one could use two colorbars for two 
> different things.  I have changed the contourf_demo.py in svn to include 
> an example of a merged colorbar.  Maybe I will change contour_demo.py 

Thanks! For those of you interested to know whitout having to look at 
SVN repository, you need to use colorbar method add_lines:

X, Y = meshgrid(linspace(-3,3,11),linspace(-3,3,11))
Z = bivariate_normal(X, Y, 1.0, 1.0, 1.0, 1.0)

lev = linspace(Z.min(),Z.max(),11)[1:-1]

im = imshow(Z, extent=[-3,3,-3,3])
cl = contour(X,Y,Z, lev, colors='k')

cb = colorbar(im)
cb.add_lines(cl)

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Different contours in contour and contourf

2006-12-11 Thread Yannick Copin
Hi,

Eric Firing wrote:
>> from pylab import *
>> X, Y = meshgrid(linspace(-3,3,11),linspace(-3,3,11))
>> Z = randn(*X.shape)
>> lev = linspace(Z.min(),Z.max(),11)[1:-1]
>> contourf(X,Y,Z, lev, extend='both')
>> contour(X,Y,Z, lev, colors='k')
>> show()
> 
> Now, you may be wondering why we can't simply use the boundary of the 
> filled regions for the lines as well, to guarantee they are the same. 
> The reason is that filled contour boundaries include cuts connecting 
> inner and outer contours, and also inner boundaries (edges of masked 
> regions--except when affected by a bug) and the outer boundaries of the 
> domain).  It might be possible to simply exclude those line segments 
> from the line contours, but it is not clear to me that the effort would 
> be well-spent.

OK, thanks for the explanations. I was using this dual approach 
contourf+contour to emphasize the contours from contourf. So is there a 
direct way to set the linewidth and linecolor (and linestyle?) of 
contours from contourf? (I suspect not, according to contourf documentation:

 contourf differs from the Matlab (TM) version in that it does not
 draw the polygon edges, because the contouring engine yields
 simply connected regions with branch cuts.  To draw the edges,
 add line contours with calls to contour.

)

> I think that the differences illustrated in your example will occur 
> almost entirely in pathologically ambiguous cases, but it is also 

Not necessarily pathological cases, just noisy data :-/ (I agree my 
randn-based example was a bit extreme!)

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Different contours in contour and contourf

2006-12-08 Thread Yannick Copin
Hi,

running the simple test code:

from pylab import *
X, Y = meshgrid(linspace(-3,3,11),linspace(-3,3,11))
Z = randn(*X.shape)
lev = linspace(Z.min(),Z.max(),11)[1:-1]
contourf(X,Y,Z, lev, extend='both')
contour(X,Y,Z, lev, colors='k')
show()

you will probably notice that the 'contourf' contours are not always 
exactly the sames as the 'contour' contours. Why is it so? Don't contour 
and contourf use the same contour constructor?

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Merge colorbars from imshow and contour

2006-12-08 Thread Yannick Copin
Hi,

in a case similar to matplotlib-0.87.7/examples/contour_demo.py (figure 
4), would it be possible to merge to two colorbars (a continuous one 
from imshow, a discrete one from contour) into a single colorbar? 
Indeed, in that case, the two colorbars are mostly redundant.

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] axhspan with data-coord in x

2006-11-08 Thread Yannick Copin
Hi,

I'd like to use axhspan, but specifying both y *and* x extents in *data* 
units (by default, y is specified in data units, and x in axes -- 
relative 0-1 -- units). How should I proceed?

I naively tried to play with gca().transAxes and so on, but I must admit 
I was utterly confused...

Or should I directly draw a rectangle? (but how to?)

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Merging subplots (Was: Re: subplot(1, 1, [...]) and pprint_getters)

2006-10-13 Thread Yannick Copin
Hi,

> Stefan> Now on to my real question.  Say I have a screen of 4x4
> Stefan> subplots, created with subplot(221).  I'd like to be able
> Stefan> to split the screen as such: __ __
> Stefan> |  |  |
> Stefan> |  |  |
> Stefan> |--|  |
> Stefan> |  |  |
> Stefan> |__|__|
> 
> ax1 = subplot(221)
> ax2 = subplot(223)
> ax3 = subplot(122)

OK, that one was kind of easy, but more generally, is there a simple 
solution to 'merge' some axes (beside doing it manually), like 
subplot(1,3,[1,2]) for:

+---+-+
|   | |
+---+-+

or any more complex layout?

(maybe someone remember there was such a functionnality under 
SuperMongo! see http://www.astro.princeton.edu/~rhl/sm/sm.html#SYN83)

Cheers.
-- 
 /  \ ,    ,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Default dpi for savefig

2006-09-13 Thread Yannick Copin
Hi,

>>>>>> >>>>> "David" == David Huard <[EMAIL PROTECTED]> writes:
> 
> David> Hi, I'm a little bit lost with respect to setting the
> David> resolution of images saved in png.  The matplotlibrc file
> David> sets the dpi to 80, but the default keyword argument of
> David> savefig is set to 150. Thus, changing the rc setting to
> David> dpi=300 does not modify savefig's default behaviour.  Is
> David> there a way to set a default dpi that would be used when
> David> calling savefig ?
> 
> 
> Have you tried modifying the rc setting 
> 
> savefig.dpi   : 100  # figure dots per inch

On a related issue: when exporting a figure from the tkagg backend 
(using the appropriate button) to PNG, the dpi is arbitrirarily set to 
300 (see backend_tkagg.py in NavigationToolbar2TkAgg.save_figure):

self.canvas.print_figure(fname, dpi=300)

I think it should honor the savefig.dpi rc setting:

self.canvas.print_figure(fname, dpi=rcParams['savefig.dpi'])

so that using savefig('toto.png') in the script or exporting it from the 
window is equivalent. I dont't know if this happens w/ other 'GUI' backends.

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Plot dates and julian dates on the same figure

2006-08-10 Thread Yannick Copin
Hi,

I'd like to plot some dates on a figure with two different x-axes: the 
bottom one with date labels (strings), and the top one with julian date 
labels (integers), see 
http://www.astrosurf.com/snweb2/2005/05el/curves/05elF_10.jpg for an 
example.

I tried to follow the method mentionned in 
http://sourceforge.net/mailarchive/message.php?msg_id=11822985, but 
unfortunately, this didn't work: as mentionned in 
http://sourceforge.net/mailarchive/message.php?msg_id=11824491, it looks 
impossible to use different tick formatters for different axes (in my 
case a DateFormatter for the bottom axis, and a FormatStrFormatter for 
the top one).

Any suggestion for this???

Cheers.

PS: as a side-question, is there an integrated way to convert a date 
(e.g. matplotlib.datetime.date(2006,8,10)) to a julian date (2453958) 
using matplotlib?
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \      Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Plot with linestyle='hsteps' and 'fsteps'

2006-07-06 Thread Yannick Copin
Hi,

following GNUplot step-plot behavior (see 
http://chem.skku.ac.kr/~wkpark/tutor/gnuplot/gpdocs/steps.htm), as 
mentionned by Peter Groszkowski (in 
http://sourceforge.net/mailarchive/message.php?msg_id=9646290), could 
the 'hsteps' linestyle be implemented in matplotlib? (as well as 
'fsteps' for sake of completness)

Here is what I currently use to mimic these different step-styles:

from pylab import *

x = array([1,3,5,7,10,12,15], dtype='d')
y = x

scatter(x, y, label='__nolegend__')

# Matplotlib original steps
plot(x, y, ls='steps', label='steps')

# Forward(?) step
xx = empty(len(x)+1, dtype=x.dtype)
xx[0] = x[0]
xx[1:] = x

yy = empty(len(x)+1, dtype=x.dtype)
yy[:-1] = y
yy[-1] = y[-1]

plot(xx, yy, ls='steps', label='fsteps')

# Histogram steps
xx = empty(len(x)+1, dtype=x.dtype)
xx[1:-1] = correlate(x, [0.5,0.5])
xx[0] = 2*x[0] - xx[1]
xx[-1] = 2*x[-1] - xx[-2]

yy = empty(len(x)+1, dtype=x.dtype)
yy[:-1] = y
yy[-1] = y[-1]

plot(xx, yy, ls='steps', label='hsteps')

legend(loc='best')
show()

Cheers.
-- 
 /  \ ,,
   _._ _ |oo| _  / \__/ \
  _   ((/ () \))   /  \  Yannick COPIN  (o:>*  Doctus cum libro
  |/|  (  )|oo|  Institut de physique nucleaire de Lyon
   \/  _`\  /'_/  \(IN2P3 - France)
   /   /.-' /\<>/\ `\.( () )_._  Tel: (33/0) 472 431 968
   |`  /  \/  \  /`'--') http://snovae.in2p3.fr/ycopin/
\__,-'`|  |.  |\/ |/\/\|"\"` AIM: YcCopinICQ: 236931013
   jgs |  |.  | \___/\___/
   |  |.  |   ||

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users