SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

You can subscribe to this list here.

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

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




Showing 17 results of 17

From: John H. <jdh...@ac...> - 2004年11月17日 22:54:13
>>>>> "Rich" == Rich Drewes <dr...@in...> writes:
 Rich> Hello, Several users (including Humufr and Niklas Volbers)
 Rich> have reported on this list a compile error building
 Rich> matplotlib with pygtk. The error looks something like this:
 Rich> In file included from src/_gtkagg.cpp:8:
 Rich> /usr/include/pygtk-2.0/pygobject.h:124: error: parse error
 Rich> before `typename" /usr/include/pygtk-2.0/pygobject.h:131:
 Rich> error: parse error before `typename"
 Rich> I also experienced this problem. It appears to be some sort
 Rich> of namespace collision on the token "typename" (what this is
 Rich> colliding with isn't clear). By changing "typename" to
 Rich> "typname" or some other spelling in
 Rich> /usr/include/pygtk-2.0/pygobject.h I was then able to build
 Rich> matplotlib successfully.
Don't do that! That looks brtually hackish.
See http://matplotlib.sourceforge.net/faq.html#PYGTK24
From: Zelakiewicz, S. (Research) <zel...@cr...> - 2004年11月17日 22:24:19
First off, thanks to everyone for the replies.
I think the problem turned out to be that when you do a `python setup.py
clean` it does not clean out the build directory (despite what it is
saying). I manually cleaned it out, rebuilt and everything is fine. There
must have been some strangeness left over from when I was trying to resolve
my include_dir issues I mentioned before. 
Just for the record, I am having no problems building against numarray 1.1
or 1.1.1. I started to try to use numeric, but it wanted a lib for cblas
that I didn't have. Before I started any of this, I deleted all old
versions of numarray and matplotlib is had in site-packages.
Thanks again for the help,
Scott.
-----Original Message-----
From: John Hunter [mailto:jdh...@ni...]
Sent: Wednesday, November 17, 2004 4:57 PM
To: Zelakiewicz, Scott (Research)
Cc: 'mat...@li...'
Subject: Re: [Matplotlib-users] Simple plot command fails
>>>>> "Zelakiewicz," == Zelakiewicz, Scott (Research) <zel...@cr...>
writes:
 Scott> Still no luck. I am not trying to run this
 Scott> interactively. Switching between TkAgg and GTKAgg
 Scott> does not seem to do anything.
Did you try rm -rf your old site-packages/matplotlib and your build
subdirectory of the matplotlib src tree, and rebuild/install
matplotlib cleanly?
If that fails, it might be instructive to edit
"/local/lib/python2.2/site-packages/matplotlib/lines.py", line 234,
and print len(x), len(y) and seeing what the hell is going on, since
the last error is
 if midPoint and self.gridOn: self.gridline.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/lines.py", line 234,
in draw
 xt, yt = self._transform.numerix_x_y(x, y)
ValueError: x and y must be equal length sequences
Finally, I can see that this is an error arising from drawing the
grid. Does it go away if you turn the grid off (axes.grid : False in
rc and comment out the grid call in simple_plot). 
I'm grasping at straws here - my best guess is above, that you have
some incompatible old matplotlib lying around.
JDH
From: John H. <jdh...@ac...> - 2004年11月17日 21:57:28
>>>>> "Zelakiewicz," == Zelakiewicz, Scott (Research) <zel...@cr...> writes:
 Scott> Still no luck. I am not trying to run this
 Scott> interactively. Switching between TkAgg and GTKAgg
 Scott> does not seem to do anything.
Did you try rm -rf your old site-packages/matplotlib and your build
subdirectory of the matplotlib src tree, and rebuild/install
matplotlib cleanly?
If that fails, it might be instructive to edit
"/local/lib/python2.2/site-packages/matplotlib/lines.py", line 234,
and print len(x), len(y) and seeing what the hell is going on, since
the last error is
 if midPoint and self.gridOn: self.gridline.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/lines.py", line 234,
in draw
 xt, yt = self._transform.numerix_x_y(x, y)
ValueError: x and y must be equal length sequences
Finally, I can see that this is an error arising from drawing the
grid. Does it go away if you turn the grid off (axes.grid : False in
rc and comment out the grid call in simple_plot). 
I'm grasping at straws here - my best guess is above, that you have
some incompatible old matplotlib lying around.
JDH
From: Zelakiewicz, S. (Research) <zel...@cr...> - 2004年11月17日 21:29:33
Still no luck. I am not trying to run this interactively. Switching
between TkAgg and GTKAgg does not seem to do anything.
Here is the output from `python simple_plot.py --verbose-helpful`
Thanks again,
Scott.
zelakiew@shake> python simple_plot.py --verbose-helpful
matplotlib data path /local/share/matplotlib
loaded rc file /home/zelakiew/.matplotlibrc
matplotlib version 0.64
verbose.level helpful
interactive is 0
numerix numarray 1.1.1
font search path ['/local/share/matplotlib']
loaded ttfcache file /home/zelakiew/.ttffont.cache
matplotlib data path /local/share/matplotlib
loaded rc file /home/zelakiew/.matplotlibrc
matplotlib version 0.64
verbose.level helpful
interactive is 0
backend TkAgg version 8.3
Traceback (most recent call last):
 File "simple_plot.py", line 17, in ?
 show()
 File
"/local/lib/python2.2/site-packages/matplotlib/backends/backend_tkagg.py",
line 68, in show
 manager.show()
 File
"/local/lib/python2.2/site-packages/matplotlib/backends/backend_tkagg.py",
line 284, in show
 self.canvas.draw()
 File
"/local/lib/python2.2/site-packages/matplotlib/backends/backend_tkagg.py",
line 135, in draw
 FigureCanvasAgg.draw(self)
 File
"/local/lib/python2.2/site-packages/matplotlib/backends/backend_agg.py",
line 310, in draw
 self.figure.draw(self.renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/figure.py", line 254,
in draw
 for a in self.axes: a.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/axes.py", line 963, in
draw
 self.xaxis.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/axis.py", line 478, in
draw
 tick.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/axis.py", line 131, in
draw
 if midPoint and self.gridOn: self.gridline.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/lines.py", line 234,
in draw
 xt, yt = self._transform.numerix_x_y(x, y)
ValueError: x and y must be equal length sequences
-----Original Message-----
From: John Hunter [mailto:jdh...@ni...]
Sent: Wednesday, November 17, 2004 4:21 PM
To: Zelakiewicz, Scott (Research)
Cc: 'Stephen Walton'; 'mat...@li...'
Subject: Re: [Matplotlib-users] Simple plot command fails
To test your installation, cd into the examples dir and try running
simple_plot.py from the unix shell.
 > cd examples
 > python simple_plot.py
 OR you can choose your backend from the shell with
 > python simple_plot.py -dTkAgg 
 > python simple_plot.py -dGTKAgg
If that works, almost surely you have an interactive problem that will
be cleared up with the links above. If now, rerun the script with
--verbose-helpful and report back.
Good luck,
JDH
From: John H. <jdh...@ac...> - 2004年11月17日 21:21:38
>>>>> "Zelakiewicz," == Zelakiewicz, Scott (Research) <zel...@cr...> writes:
 Scott> Sorry, I should have explicitly stated most of this:
 Scott> This is on Redhat 9.0. I built numarray and
 Scott> matplotlib myself.
 Scott> Initially the matplotlib build had problems finding
 Scott> the numarray headers since I have to install
 Scott> everything to a non-standard place (I don't have
 Scott> root) and simply modifying basedir in setupext.py
 Scott> did not work. I made some sym-links and added to an
 Scott> include_dir to fix that and now there are no build
 Scott> problems.
 Scott> My .matplotlibrc is identical to the one put in
 Scott> share/matplotlib except numerix is set to 'numarray'
 Scott> and set datapath to '/local/share/matplotlib' which
 Scott> is where all the fonts and stuff are.
If you are running interactively from the python shell, you need to
make sure "interactive" is set to True in your rc file and do not use
show. 
 http://matplotlib.sourceforge.net/faq.html#SHOW
Also, to work interactively, you must use either the tkagg backend or
a python shell that supports threading for the GUI you are using (GTK
or WX) such as ipython http://ipython.scipy.org, which has explicit
support for matplotlib in the pylab mode
 http://matplotlib.sourceforge.net/interactive.html
To test your installation, cd into the examples dir and try running
simple_plot.py from the unix shell.
 > cd examples
 > python simple_plot.py
 OR you can choose your backend from the shell with
 > python simple_plot.py -dTkAgg 
 > python simple_plot.py -dGTKAgg
If that works, almost surely you have an interactive problem that will
be cleared up with the links above. If now, rerun the script with
--verbose-helpful and report back.
Good luck,
JDH
From: Stephen W. <ste...@cs...> - 2004年11月17日 20:36:57
On Wed, 2004年11月17日 at 13:15 -0500, Zelakiewicz, Scott (Research) wrote:
> This is on Redhat 9.0. I built numarray and matplotlib myself. 
> 
> Initially the matplotlib build had problems finding the numarray headers
> since I have to install everything to a non-standard place (I don't have
> root)
Oof. I'm afraid I can't be much help. I long ago updated all my RH9
boxes to FC1 and I also have root access on them. Can anyone else
reproduce these problems?
-- 
Stephen Walton, Professor of Physics and Astronomy,
California State University, Northridge
ste...@cs...
From: Zelakiewicz, S. (Research) <zel...@cr...> - 2004年11月17日 18:16:06
Sorry, I should have explicitly stated most of this:
This is on Redhat 9.0. I built numarray and matplotlib myself. 
Initially the matplotlib build had problems finding the numarray headers
since I have to install everything to a non-standard place (I don't have
root) and simply modifying basedir in setupext.py did not work. I made some
sym-links and added to an include_dir to fix that and now there are no build
problems. 
My .matplotlibrc is identical to the one put in share/matplotlib except
numerix is set to 'numarray' and set datapath to '/local/share/matplotlib'
which is where all the fonts and stuff are.
Thanks again,
Scott.
-----Original Message-----
From: Stephen Walton [mailto:ste...@cs...]
Sent: Wednesday, November 17, 2004 12:55 PM
To: Zelakiewicz, Scott (Research)
Cc: 'mat...@li...'
Subject: Re: [Matplotlib-users] Simple plot command fails
On Wed, 2004年11月17日 at 12:44 -0500, Zelakiewicz, Scott (Research) wrote:
> Any help/suggestions would be appreciated.
What OS version/distribution are you running? Did you built matplotlib
yourself? Any errors in the build? What is in your $HOME/.matplotlibrc
file?
-- 
Stephen Walton, Professor of Physics and Astronomy,
California State University, Northridge
ste...@cs...
From: Stephen W. <ste...@cs...> - 2004年11月17日 17:54:51
On Wed, 2004年11月17日 at 12:44 -0500, Zelakiewicz, Scott (Research) wrote:
> Any help/suggestions would be appreciated.
What OS version/distribution are you running? Did you built matplotlib
yourself? Any errors in the build? What is in your $HOME/.matplotlibrc
file?
-- 
Stephen Walton, Professor of Physics and Astronomy,
California State University, Northridge
ste...@cs...
From: Zelakiewicz, S. (Research) <zel...@cr...> - 2004年11月17日 17:44:50
Hi,
I am trying to get matplotlib (0.64) up and running. When I run the
following commands
	from matplotlib.matlab import *
	figure(1)
	plot([1,2,3,4])
	show()
I get an error message (shown below), the figure window draws with the
buttons on the bottom, but no plot is drawn. I have tried this with the
GTKAgg and TkAgg backends and they both give the same error. If it matters,
I am using numarray.
Any help/suggestions would be appreciated.
Thanks,
Scott.
Python 2.2.2 (#1, Feb 24 2003, 19:13:11)
[GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from matplotlib.matlab import *
>>> figure(1)
<matplotlib.figure.Figure instance at 0x86cea2c>
>>> plot([1,2,3,4])
[<matplotlib.lines.Line2D instance at 0x87470cc>]
>>> show()
/local/usr/src/garnome2.6.2/lib/python2.2/site-packages/gtk-2.0/gtk/__init__
.py: 83: GtkDeprecationWarning: gtk.mainloop is deprecated, use gtk.main
instead
 self.warn(message, DeprecationWarning)
Traceback (most recent call last):
 File
"/local/lib/python2.2/site-packages/matplotlib/backends/backend_gtkagg.py ",
line 96, in callback
 else: self.draw()
 File
"/local/lib/python2.2/site-packages/matplotlib/backends/backend_gtkagg.py ",
line 44, in draw
 FigureCanvasAgg.draw(self)
 File
"/local/lib/python2.2/site-packages/matplotlib/backends/backend_agg.py",
line 310, in draw
 self.figure.draw(self.renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/figure.py", line 254,
in d raw
 for a in self.axes: a.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/axes.py", line 963, in
dra w
 self.xaxis.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/axis.py", line 478, in
dra w
 tick.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/axis.py", line 132, in
dra w
 if midPoint and self.tick1On: self.tick1line.draw(renderer)
 File "/local/lib/python2.2/site-packages/matplotlib/lines.py", line 234,
in dr aw
 xt, yt = self._transform.numerix_x_y(x, y)
ValueError: x and y must be equal length sequences
 
From: John H. <jdh...@ac...> - 2004年11月17日 13:50:11
>>>>> "Norbert" == Norbert Nemec <Nor...@gm...> writes:
 Norbert> I just sent patches about this to matplotlib-devel. The
 Norbert> current version has two problems with this:
Until these are incorporated, there is still an easy way to customize
the legend text (and other properties of legends) which is illustrated
in http://matplotlib.sf.net/examples/legend_demo.py. Here is the
approach, in brief
 leg = legend(... legend args here)
 texts = leg.get_texts()
 set(texts, fontsize='small', color='r')
JDH
From: <jk...@ik...> - 2004年11月17日 13:10:44
[Apologies if this message is a duplicate; it seems that Gmane ate my
previous attempt at replying, since I sent another message to the list
before acking Gmane's autoreply.]
Andrew Straw writes:
> To me, nargout, like so much of Matlab, is a brutish hack introduced
> because that language is not as capable or elegant as Python. 
Arguably Matlab has the elegant Lisp-like feature lacking in Python of
multiple return values. In Lisp you can write
 (setq x (floor 3.14))
to set the value of x to 3, or
 (multiple-value-setq (x y) (floor 3.14))
to set the value of x to 3 and the value of y to 0.14. Note how it is
left up to the caller of the FLOOR function whether to capture just
the first returned value or both of them. This is paralleled by
Matlab's
 x = some_function(a,b,c)
 [x,y] = some_function(a,b,c)
where the caller decides how many values will be returned.
I imagine nargout could have arisen as an optimization aid: if a value
is not needed, the function can decide to not compute it. A reasonably
good Lisp compiler would probably do this optimization automatically,
but Matlab is (or was, until some recent version?) an interpreted
language with fewer opportunities for optimization.
Where Matlab goes terribly wrong (IMHO) is in that it encourages abuse
of the nargout mechanism: built-in functions like find change their
behavior depending on how many return values are expected. In effect,
the name "find" denotes two different functions, dispatched by the
value of nargouts.
> Regardless of whether your sense of aesthetics is different than mine,
> the kind of low-level shenanigans suggested as a work-around seems, at
> the very least, brittle and prone to maintenance and portability
> issues. (Would that even work on IronPython or PyPy?)
I imagine that the Psyco JIT compiler might have some problems with
the hack.
I would like to amend my suggestion upthread: instead of changing
mlab.find, add another function, say find2 unless someone thinks of a
better name, that always returns a tuple. The current version of find
could be left as it is, or, even better (this might be important for
automatic Matlab-to-Python translation), changed to return a single
index for any kind of array. This would require a mechanism for
addressing array elements by a single index, which probably doesn't
exist. For Matlab compatibility, the addressing should use the
column-major, i.e., Fortran, order.
In fact, I don't see why this wouldn't solve the problem of automatic
translation of functions that use nargout. The value of nargout is a
static feature of the function call, so the translator should easily
be able to dispatch according to the value, or add it as a keyword
argument. That is, if the user has a function like
 function [a,b]=foo(bar)
 switch nargout,
 case 1, a=bar;
 case 2, a=1; b=bar;
 end
the translator could produce the Python function
 def foo(bar, nargout=0):
 if nargout==1:
 return bar;
 elif nargout==2:
 return (1,bar);
and translate
 foo(1);
 a=foo(2);
 [b,c]=foo(3);
to
 foo(1);
 a=foo(2,nargout=1);
 (b,c)=foo(3,nargout=2);
I wouldn't do this for find, since (in my experience) the
two-return-value form of find is the more common case, and it would
not be very nice to always type in the nargout parameter when using
matplotlib interactively.
> it seems to me that early design mistakes resulted in terrible
> backwards compatibility issues, as well. For example, I remember
> being driven mad trying to figure out whether parentheses were
> needed when calling certain functions. I guess for some they are
> required and for others they aren't.
I wonder if this is the same problem that I had for a long time: I
finally realized that Matlab either does both auto-parenthesizing and
auto-quoting, or neither of them, so
 print -depsc2 fname
is equivalent to
 print('-depsc2', 'fname')
so if you want to create one of the parameters dynamically, you cannot
use the first form but will have to write something like
 print('-depsc2', sprintf('picture-%d', num))
(Then there is the confusion of {} vs () indexing, and cell strings
that are almost like real strings but sometimes need a {:} after them,
except that if you get them from a function, since the parser gets
confused if you type fun(param){:} so you need a temp variable, and
cell arrays of structs that sometimes act like structs of cell
arrays... Automatic translation of Matlab code will certainly have
some interesting challenges.)
-- 
Jouni K Seppänen
From: Norbert N. <Nor...@gm...> - 2004年11月17日 10:30:31
I just sent patches about this to matplotlib-devel.
The current version has two problems with this:
* legend does not take kwargs. All the options like FONTSIZE, PAD and others 
can only be set globally as class variables of Legend
* the option FONTSIZE - even if changed globally - is flat out ignored. It is 
used once for a calculation, but the crucial routine Legend.draw() completely 
ignores it.
Both problems are fixed with my patches (see matplotlib-devel or wait for them 
to appear in CVS)
Ciao,
Norbert
On Tuesday 16 November 2004 18:52, Cory Davis wrote:
> Hi All,
>
> Can anyone tell me how to change the size of the legend produced by
> matlab.legend independently of my axis tick labels?
>
> lh=legend(['a','b','c'],loc=4,fontsize=8)
>
> doesn't work and there seems to be nothing in the lh object that would
> help.
>
> Cheers,
> Cory
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: InterSystems CACHE
> FREE OODBMS DOWNLOAD - A multidimensional database that combines
> robust object and relational technologies, making it a perfect match
> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
-- 
_________________________________________Norbert Nemec
 Bernhardstr. 2 ... D-93053 Regensburg
 Tel: 0941 - 2009638 ... Mobil: 0179 - 7475199
 eMail: <No...@Ne...>
From: <jk...@ik...> - 2004年11月17日 10:01:01
Attachments: getset.patch
Hi,
One thing that I really like about Matlab's handle graphics system is
that it is self-documenting: if I do h=plot(...), I can query the
current values of all properties with get:
 >> get(h)
 Color = [0 0 1]
 EraseMode = normal
 LineStyle = -
 LineWidth = [0.5]
[...] 
 UserData = []
 Visible = on
Also, if I'm interested in changing something but don't know the
allowed values, I can use set:
 >> set(h,'linestyle')
 [ {-} | -- | : | -. | none ]
 >> set(h,'erasemode')
 [ {normal} | background | xor | none ]
 >> set(h,'markersize')
 A line's "MarkerSize" property does not have a fixed set of property values.
I'm attaching a patch that adds something like this to Matplotlib. For
get, the changes are quite straightforward, but for set, the correct
design is not obvious. I have added some example documentation to axes
objects, so set(gca()) returns something useful.
But, again, I'm not sure about the design, so please consider this
patch not as something I'd like applied to matplotlib right now, but
as a suggestion of a feature I would like to see added.
-- 
Jouni K Seppänen
From: Andrew S. <str...@as...> - 2004年11月17日 07:52:29
On Nov 16, 2004, at 4:51 PM, Darren Dale wrote:
> Maybe my example wasn't clear. There are good reasons for using 
> varargout and nargout in Matlab. If I write a function to fit a peak, 
> I can return the position, height, FWHM and sumResiduals along with 
> some information about how the peakfitting algorithm concluded. If a 
> user calls [p,h,fwhm,sr] = peakfit(x,y), you use nargout to determine 
> that the caller does not want the algorithm report.
Hi Darren,
I sometimes return a dict in cases like this:
fit = peakfit(x,y)
print fit['position']
print fit['height']
print fit['FWHM']
and so on...
Sometimes, the results I always want get returned on their own and 
optionally return all results:
p,h = peakfit(x,y) # return just the basic 
results
p,h,fit_extras = peakfit(x,y,full_output=True) # return everything
print fit_extras['FHWM']
(I think some scipy functions operate more-or-less like this, too. 
Perhaps without returning results in a dict, but merely as extra 
arguments.)
I have to agree with the opinions of Chris Barker and John Hunter 
cautioning against writing new code using an 'nargout-alike'. (When 
translating Matlab code to Python I can see that it might be useful.) 
Furthermore, I often find myself grabbing the results of a function 
call in one variable, stuffing it somewhere, and later, knowing it's a 
tuple, examining the elements later. This handy trick would be 
impossible with an nargout-based implementation.
To me, nargout, like so much of Matlab, is a brutish hack introduced 
because that language is not as capable or elegant as Python. (To 
digress further and probably show the era at which I left Matlab to be 
around 5.x, it seems to me that early design mistakes resulted in 
terrible backwards compatibility issues, as well. For example, I 
remember being driven mad trying to figure out whether parentheses were 
needed when calling certain functions. I guess for some they are 
required and for others they aren't. I think it would be very 
difficult to define the syntax for Matlab as done in the Python 
(Language) Reference Manual. And let's not get into issues of object 
oriented programming, types and 'everything is a (double precision) 
matrix'.)
Regardless of whether your sense of aesthetics is different than mine, 
the kind of low-level shenanigans suggested as a work-around seems, at 
the very least, brittle and prone to maintenance and portability 
issues. (Would that even work on IronPython or PyPy?)
Anyhow, if you're not scared by bytecode hacks in your initial 
toe-dipping forays into Python, I invite you to dive in!
Cheers!
Andrew
From: Steve C. <ste...@ya...> - 2004年11月17日 03:36:39
On Tue, 2004年11月16日 at 18:23 -0800, Rich Drewes wrote:
> Hello,
> 
> Several users (including Humufr and Niklas Volbers) have reported on this
> list a compile error building matplotlib with pygtk. The error looks
> something like this:
> 
> In file included from src/_gtkagg.cpp:8:
> /usr/include/pygtk-2.0/pygobject.h:124: error: parse error before 
> `typename"
> /usr/include/pygtk-2.0/pygobject.h:131: error: parse error before 
> `typename"
> 
> I also experienced this problem. It appears to be some sort of namespace
> collision on the token "typename" (what this is colliding with isn't
> clear). By changing "typename" to "typname" or some other spelling in
> /usr/include/pygtk-2.0/pygobject.h I was then able to build matplotlib
> successfully.
> 
> If someone knows what is causing this and has a better solution, please
> advise. Perhaps it has something to do with GCC 3.4.x and that particular
> pygtk release.
> 
> Rich Drewes
The problem is a bug in old versions of PyGTK, upgrading to a later version 
(2.4.1 I believe) will fix it.
Regards
Steve
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: InterSystems CACHE
> FREE OODBMS DOWNLOAD - A multidimensional database that combines
> robust object and relational technologies, making it a perfect match
> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
From: Rich D. <dr...@in...> - 2004年11月17日 02:23:08
Hello,
Several users (including Humufr and Niklas Volbers) have reported on this
list a compile error building matplotlib with pygtk. The error looks
something like this:
In file included from src/_gtkagg.cpp:8:
 /usr/include/pygtk-2.0/pygobject.h:124: error: parse error before 
`typename"
 /usr/include/pygtk-2.0/pygobject.h:131: error: parse error before 
`typename"
I also experienced this problem. It appears to be some sort of namespace
collision on the token "typename" (what this is colliding with isn't
clear). By changing "typename" to "typname" or some other spelling in
/usr/include/pygtk-2.0/pygobject.h I was then able to build matplotlib
successfully.
If someone knows what is causing this and has a better solution, please
advise. Perhaps it has something to do with GCC 3.4.x and that particular
pygtk release.
Rich Drewes
From: Darren D. <dd...@co...> - 2004年11月17日 00:51:25
Hi Chris,
>> Matlab also returns one object- the varargout cell array which is 
>> similar to Python's list or tuple. You write a function, and pack 
>> varargout with nargout results: [a,b]=matlabfun().
>
>
>
> I haven't used Matlab for a while, and not a newer version than 5.*, 
> but IIRC, while the above notation looks, like you are returning a 
> cell array, you could not call that fun with a single return argument. 
> Perhaps that's changed, in which case you shouldn't use nargout in 
> Matlab either!
Maybe my example wasn't clear. There are good reasons for using 
varargout and nargout in Matlab. If I write a function to fit a peak, I 
can return the position, height, FWHM and sumResiduals along with some 
information about how the peakfitting algorithm concluded. If a user 
calls [p,h,fwhm,sr] = peakfit(x,y), you use nargout to determine that 
the caller does not want the algorithm report.
>
> Anyway, my main point was that kludging a nargout implementation in 
> python was not a good idea. I'd much rather see matplotlib be 
> pythonesque than matlabesque. Perhaps my goals are different than 
> others, but I use Python, rather than Matlab, largely because I like 
> the language better.
>
I originally looked into Python because everyone who works with it loves 
it, and it is free. I felt that the switch could be quick and painless 
because of John and the other MPL developers efforts with the Matlab 
interface. I would probably have waited to switch until after graduating 
if I hadnt googled "Python AND Matlab" one fateful day. (Cornell 
recently sent me a survey asking whether I felt 230ドル was fair for a 12 
month license!). The matlab interface is already matlabesque. I think 
*args and Matlab's varargin are equivalent. Let me write up some 
examples using nargout as it is intended to be used, and I'll submit 
them to the list in a new thread. This one has strayed a bit from the 
original topic.
Darren

Showing 17 results of 17

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





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

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

More information about our ad policies

Ad destination/click URL:

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