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
|
|
From: Chris F. <fon...@gm...> - 2004-10-20 00:56:23
|
I am wondering it it is possible to: 1. Modify the spacing between subplots; currently they are cramped for some plots that I am generating 2. Reduce the font size of the tick labels (not the axis labels); large font size for subplot ticks is contributing to the crowded look mentioned above. Perhaps I am quite blind, but I could not find these in the tutorial nor in a quick search of the mailing list archive. Thanks for any help. c. |
|
From: Andrew S. <str...@as...> - 2004-10-19 18:09:33
|
Hi All, I just added support for PIL (Python Imaging Library, for those living in a cave) images to imshow(). This was acheived largely through the creation of a pil_to_array() function in image.py, which may be useful for other purposes. I've tested the code with numarray and Numeric and several image types and checked it into CVS this morning. This code does not add a dependency on PIL to matplotlib -- it merely uses PIL object attributes if they happen to get passed in. (I think it's important to keep matplotlib's dependency list from growing without reason.) I would like to test the pil_to_array() function for the case of >8-bit per channel images that (IIRC) PIL supports. If anyone has such images, could they either 1) send one to me or 2) run them through pil_to_array() and fix it? Note that *display* of such high dynamic range will currently only be possible with single channel data passed through a colormap because the matplotlib's _image.cpp uses 8 bits per channel. (Not that anyone's display device is likely to make use of this information -- and if you have such a device, I'd love to hear about it!) Cheers! Andrew |
|
From: <je...@33...> - 2004-10-17 22:47:01
|
Quoting je...@33... (je...@33...):
> I spent a (VERY) little bit of time trying to find where the border is
> drawn around each point/marker on a scatter plot and unfortunately got
> lost in the ether.
>
> I've not found a standardized way in the api to do this. I found that
> for lines, there's a "markeredgewidth" mentioned in the documentation,
> but I can't seem to set this for scatter plots.
well... as is usually the case, as soon as I admitted defeat and asked
for help, I found the solution. ;)
----note---------
plot = scatter(x,y,s=s,c=c,alpha=0.3)
set(plot,'linewidth',0.0) # <--- this is what does it
----end----------
maybe someone else will find this useful, or at least google will pick
it up for the next time I forget. heh.
If there's a better way, I'm interested to know it, but this works
quite nicely.
jeremy
--
Jeremy Kelley <je...@33...>
All plenty which is not my God is poverty to me. -Augustine
|
|
From: <je...@33...> - 2004-10-17 22:38:49
|
Hi,
I spent a (VERY) little bit of time trying to find where the border is
drawn around each point/marker on a scatter plot and unfortunately got
lost in the ether.
I've not found a standardized way in the api to do this. I found that
for lines, there's a "markeredgewidth" mentioned in the documentation,
but I can't seem to set this for scatter plots.
Any help would be greatly appreciated.
jeremy
--
Jeremy Kelley <je...@33...>
All plenty which is not my God is poverty to me. -Augustine
|
|
From: John H. <jdh...@ac...> - 2004-10-17 00:07:52
|
>>>>> "Dirk" == <rep...@we...> writes:
Dirk> I cannot get that ylabel to write it's text on the
Dirk> right-hand side of the graph. I use two scales following the
Dirk> 'two_scales.py' examples from the matplotlib-src, but this
Dirk> examples doesn't put ylabels.
Dirk> Is there a way to get a ylabel on both sides?
To make a ylabel on the right, use the text command. You need to set
the transform to use axes coordinates (ax.transAxes), rotate the text
vertically, make the horizontal alignment left, the vertical alignment
centered. Note that x, y = 1, 0.5 is the right, middle of the axes in
axes coordinates. You also need to turn off clipping, so the text can
appear outside the axes w/o being clipped by the axes bounding box,
which is the default behavior.
from matplotlib.matlab import *
plot([1,2,3])
text(1.02, 0.5, 'volts',
horizontalalignment='left',
verticalalignment='center',
rotation='vertical',
transform=gca().transAxes,
clip_on=False)
show()
|
|
From: <rep...@we...> - 2004-10-16 16:44:33
|
I cannot get that ylabel to write it's text on the right-hand side of the graph. I use two scales following the 'two_scales.py' examples from the matplotlib-src, but this examples doesn't put ylabels. Is there a way to get a ylabel on both sides? -Dirk |
|
From: Fernando P. <Fer...@co...> - 2004-10-16 06:34:23
|
In numerix.py, the following loop:
if hasattr(sys, 'argv'): #Once again, Apache mod_python has no argv
for a in sys.argv:
if a in ["--Numeric", "--numeric", "--NUMERIC",
"--Numarray", "--numarray", "--NUMARRAY"]:
which = a[2:], "command line"
break
leaves behind a variable called 'a', which gets pulled in when the user does a
'from matplotlib.matlab import *'. This seems like a minor annoyance, except
that it breaks ipython's 'whos' command in pylab mode, since whos tries to
distinguish between variables interactively defined by the user and those
loaded during internal initialization. Since the name 'a' appears in internal
initialization, whos hides it later:
[matplotlib]> which pylab
pylab: aliased to ipython -pylab --nobanner
[matplotlib]> pylab
In [1]: a
Out[1]: '--nobanner'
In [2]: a='Hello!'
In [3]: a
Out[3]: 'Hello!'
In [4]: whos
Interactive namespace is empty.
A simple 'del a' after the loop indicated above fixes this issue. In general,
for modules which are meant for 'from foo import *', it's a good idea to make
sure no internal locals are left around.
Best,
f
|
|
From: Peter G. <pgr...@ge...> - 2004-10-14 23:45:41
|
John Hunter wrote: >>>>>>"Peter" == Peter Groszkowski <pgr...@ge...> writes: >>>>>> > > >> also in 0.60.2 i noticed that ticker.DayMultiLocator is used > >> on line 1518 of matplotlib/axes.py but is not imported > > Peter> That was just after DayMultiLocator was added; it's a > Peter> bug. You can just add it yourself. I use (a little > Peter> modified) 60.2 as well on two production servers. It seems > Peter> very stable at this point. Great majority of my plotting > Peter> uses plot_date and with the new changes (haven't tried - > Peter> just read about) I am afraid that lots of my code will > Peter> break. So might take this opportunity to ask: > >My apologies for the hassle. > No need. Evolution... > I suspect you'll find the conversion >painless when/if you can ever work yourself up to it. I converted all >the datetime example code in a matter of minutes > > 1) convert your epoch to proleptic gregorian dates(see below) > > 2) remove the converter instance from the calls to plot_date > > 3) check your tick locator constructors replacing all 'base' > constructors with explicit constructors (expect for the > YearLocator, which still take the base arg). Eg if you want even > months, do MonthLocator(range(2,13,2)) rather than MonthLocator(2) > > sounds straight forward.. > >import matplotlib.numerix as nx >from matplotlib.dates import num2date > >def epoch2num(e): > spd = 24.*3600. > return 719163 + nx.asarray(e)/spd > >e = range(0,20000,1000) >d = epoch2num(e) > >print num2date(d[0]) > >If everyone is happy with the conversion function name and >implementation, I'll add it to the dates module. > epoch2num() looks good to me.. i usually deal with large data sets (often >500k points) and the conversion still seems very quick with Numeric. Will try to upgrade within next couple of weeks. Thanks Peter P.S So when can we see your daughter join the matplotlib development? Judging from your usual responses to our questions/requests, I bet it's sometime real soon. -- Peter Groszkowski Gemini Observatory Tel: +1 808 974-2509 670 N. A'ohoku Place Fax: +1 808 935-9235 Hilo, Hawai'i 96720, USA |
|
From: John H. <jdh...@ac...> - 2004-10-14 20:10:37
|
>>>>> "Peter" == Peter Groszkowski <pgr...@ge...> writes:
>> also in 0.60.2 i noticed that ticker.DayMultiLocator is used
>> on line 1518 of matplotlib/axes.py but is not imported
Peter> That was just after DayMultiLocator was added; it's a
Peter> bug. You can just add it yourself. I use (a little
Peter> modified) 60.2 as well on two production servers. It seems
Peter> very stable at this point. Great majority of my plotting
Peter> uses plot_date and with the new changes (haven't tried -
Peter> just read about) I am afraid that lots of my code will
Peter> break. So might take this opportunity to ask:
My apologies for the hassle. I suspect you'll find the conversion
painless when/if you can ever work yourself up to it. I converted all
the datetime example code in a matter of minutes
1) convert your epoch to proleptic gregorian dates(see below)
2) remove the converter instance from the calls to plot_date
3) check your tick locator constructors replacing all 'base'
constructors with explicit constructors (expect for the
YearLocator, which still take the base arg). Eg if you want even
months, do MonthLocator(range(2,13,2)) rather than MonthLocator(2)
Peter> Does the new date plotting mechanism support the old way of
Peter> using "seconds from epoch"? It was very efficient as a lot
Peter> of data (not only mine I would imagine) is simply in that
Peter> format.
I'll provide a converter func in the dates module. This is what I
think should be done, but I'll bounce it off the list to make sure.
Epoch time starts at 1970,1,1
>>> time.gmtime(0)
(1970, 1, 1, 0, 0, 0, 3, 1, 0)
>>> dt = datetime(1970, 1, 1, 0, 0, 0, tzinfo=None)
>>> dt.toordinal()
719163
So to convert to the new calendar, add 719163 and divide by seconds
per day. Since you can do this in numerix, it shouldn't impose a
noticeable performance hit on your script
import matplotlib.numerix as nx
from matplotlib.dates import num2date
def epoch2num(e):
spd = 24.*3600.
return 719163 + nx.asarray(e)/spd
e = range(0,20000,1000)
d = epoch2num(e)
print num2date(d[0])
If everyone is happy with the conversion function name and
implementation, I'll add it to the dates module.
JDH
|
|
From: Peter G. <pgr...@ge...> - 2004-10-14 19:35:05
|
> > also in 0.60.2 i noticed that ticker.DayMultiLocator is used on line > 1518 of matplotlib/axes.py but is not imported That was just after DayMultiLocator was added; it's a bug. You can just add it yourself. I use (a little modified) 60.2 as well on two production servers. It seems very stable at this point. Great majority of my plotting uses plot_date and with the new changes (haven't tried - just read about) I am afraid that lots of my code will break. So might take this opportunity to ask: Does the new date plotting mechanism support the old way of using "seconds from epoch"? It was very efficient as a lot of data (not only mine I would imagine) is simply in that format. -- Peter Groszkowski Gemini Observatory Tel: +1 808 974-2509 670 N. A'ohoku Place Fax: +1 808 935-9235 Hilo, Hawai'i 96720, USA |
|
From: John H. <jdh...@ac...> - 2004-10-14 17:30:59
|
>>>>> "Moe" == Moe Aboulkheir <mo...@po...> writes:
Moe> sorry i did not explain fully. due to the asynchronous
Moe> nature of the twisted framework, most blocking operations are
Moe> generally executed inside threads, or at least, they are in
Moe> my case.
I figured as much.
Moe> thank you, and indeed i am confused, however i am using
Moe> matplotlib 0.60.2, and here is the method declaration for
Moe> Figure's __init__ (from matplotlib/figure.py):
Moe> also in 0.60.2 i noticed that ticker.DayMultiLocator is used
Moe> on line 1518 of matplotlib/axes.py but is not imported
Both of these are fixed in the current matplotlib release. You may
want to consider upgrading, particularly if you are actively writing
date code, since the date handling has changed and it may be less
painful to upgrade sooner rather than later when you have a large code
base installed. See the release notes at what's new for matplotlib
0.63.
Also, *many* memory leaks have been fixed - for web applications, this
may be important.
Moe> the example you sent looks to be most helpful, thanks for
Moe> taking the time to help me out.
Moe> Moe
|
|
From: Jean-Michel P. <jea...@ir...> - 2004-10-14 17:26:10
|
Hello, I recently worked on displaying plot coordinates from the example code 'coord_demo.py' so that I now have a script that should provide the following features: - coords are displayed either when clicking a mouse button or when stopping the mouse cursor in the plot for a given time (based on a timer) - coords can be displayed in the console or directly in the figure (a kind of balloon) - displayed coords are the nearest plot point coords provided the number of point distances to compute between mouse and curves is low enough to preserve resources, coords are only displayed if the smallest computed distance is "small" enough - coords displaying is activated by calling a unique function, its args define the type of event that triggers coords displaying and the callback that renders these coords (users can then provide their own one) The callback that displays coords in a balloon uses the 'text' function of matplotlib.matlab such that this feature shouldn't rely on any backend. Unfortunately things don't work for all backends. The results are the following: console displaying balloon displaying ------------------ ------------------ WXAgg OK OK TkAgg OK hangs GTKAgg nothing happens nothing happens Note that I never tried in an interactive session and I currently use matplotlib 0.62.4. In case some people are interested in having a look at my code, I attached it. This is a module that can be run as a standalone script for testing. If things finally get work, I plan to add a backend-independent "cross hair" as 'wxcursor_demo.py' does using lines, and to highlight the nearest point in the figure by changing its color and/or its marker (but I still don't know how to!). I also wonder about the opportunity to add a toolbar button for this kind of tool. This would certainly require further improvements since my script seems to interact with the zoom tool callback while drawing the rectangle with the mouse. Moreover I only tested it for a single plot at the moment. JM. Philippe |
|
From: Moe A. <mo...@po...> - 2004-10-14 16:30:46
|
John,
thanks for your very quick response.
> You may not be forced to do this; it depends on the circumstances.
> I've used the matlab interface to serve web pages before, though not
> with twisted. The use of the word global (in the example script
> pythonic_matplotlib) may not be the best choice, since the "globals"
> like the current figure and current axes are really module level
> variables that many modules access. But if you are creating figures
> in threads, this would be a problem. So the matplotlib API is a sound
> choice.
sorry i did not explain fully. due to the asynchronous nature of the
twisted framework, most blocking operations are generally executed
inside threads, or at least, they are in my case.
> I think you are confusing the figure linewidth with the plot
> linewidth. The Figure constructor does have a linewidth parameter in
> the __init__ method, though this is almost certainly not what you
> want.
thank you, and indeed i am confused, however i am using matplotlib
0.60.2, and here is the method declaration for Figure's __init__ (from
matplotlib/figure.py):
class Figure(Artist):
def __init__(self,
figsize = None, # defaults to rc figure.figsize
dpi = None, # defaults to rc figure.dpi
facecolor = None, # defaults to rc figure.facecolor
edgecolor = None, # defaults to rc figure.edgecolor
frameon = True,
):
also in 0.60.2 i noticed that ticker.DayMultiLocator is used on line
1518 of matplotlib/axes.py but is not imported
the example you sent looks to be most helpful, thanks for taking the
time to help me out.
Moe
|
|
From: John H. <jdh...@ac...> - 2004-10-14 14:41:46
|
>>>>> "Moe" == Moe Aboulkheir <mo...@po...> writes:
Moe> Hey, i'm using matplotlib to create plots inside the twisted
Moe> asynchronous web framework, so i am forced to use the
Moe> pythonic API to avoid making global calls, however i have 3
Moe> questions and would be extremely grateful if anyone could
Moe> help me out.
You may not be forced to do this; it depends on the circumstances.
I've used the matlab interface to serve web pages before, though not
with twisted. The use of the word global (in the example script
pythonic_matplotlib) may not be the best choice, since the "globals"
like the current figure and current axes are really module level
variables that many modules access. But if you are creating figures
in threads, this would be a problem. So the matplotlib API is a sound
choice.
Moe> 1) The online docs say that Figure.__init__ takes a linewidth
Moe> keyword argument, but it does not. how can i set the
Moe> linewidth for a figure, and how can i set the fontsize for a
I think you are confusing the figure linewidth with the plot
linewidth. The Figure constructor does have a linewidth parameter in
the __init__ method, though this is almost certainly not what you
want. This parameter controls the width of the line around the border
of the figure, a frame if you will, which is normally invisible
because the figure edge line and figure background color are both set
to white by default for saving figures. You are probably interested
in the lines.linewidth parameter which controls the default thickness
of all plot lines. This, and many more parameters, can be set in your
http://matplotlib.sf.net/.matplotlibrc file. You can also control the
default tick sizes, label sizes, colors, etc...
Moe> figure, without doing weird things like map( lambda t:
Moe> t.set_fontsize( 6 ), legend.get_texts() )
There are no default legend parameters in rc, so you'll have to
manually do it. You give up some of the convenience of the matlab
interface by using the api. Normally, one would use the matlab
interface 'set' command for this. In the example below, I include an
implementation of set called setapi that you may want to use in your
api code.
Moe> 2) all of the examples using the pythonic API instantiate a
Moe> Figure, and then do add_subplot(). this works for me, but
Moe> matplotlib adds a bunch of space around the figure that i
Moe> dont need. is there a way around this, or an alternative to
Moe> add_subplot if i want only one plot?
Sure; use fig.add_axes. Then you can specify the left, bottom, width
and height of your axes as fractions of the entire figure size.
add_subplot is merely a convenience function to predefine some useful
axes sizes, but for full control, you'll want to set the axes size
yourself.
Moe> 3) my ticklabels for the X axis happen to be quite lengthy
Moe> strings, and they overlap if placed horizontally, adjacent to
Moe> each other. i am using rotation = 45 but then a lot of the
Moe> text gets clipped off of the bottom of the figure (im setting
Moe> figsize in the Figure constructor). i am happy with the size
Moe> of the figure, but would like more space for the text at the
Moe> bottom.
Again, this is a problem with the default axes size. By making the
bottom a little higher, you can prevent your text from getting
clipped. The other option (you may want to do both) is use a smaller
fontsize for your tick labels.
Moe> any help will be greatly appreciated. Moe Aboulkheir
Since there really was no true OO example for the agg backend, I wrote
one. It gives examples of how to solve all the problems you
encountered - this is examples/webapp_demo.py in CVS.
#!/usr/bin/env python
# This example shows how to use the agg backend directly to create
# images, which may be of use to web application developers who want
# full control over their code without using the matlab interface to
# manage figures, figure closing etc.
#
# I am making no effort here to make a figure that looks good --
# rather I am just trying to show the various ways to use matplotlib
# to customize your figure using the matplotlib API
import matplotlib
matplotlib.use('Agg') # force the antigrain backend
from matplotlib import rc
from matplotlib.backends.backend_agg import FigureCanvasAgg
from matplotlib.figure import Figure
from matplotlib.cbook import iterable
import matplotlib.numerix as nx
# Set some properties that affect the defaults of all figures. The rc
# command is used to create per-script default figure customizations
# of the rc parameters; see http://matplotlib.sf.net/.matplotlibrc .
# You may prefer to set the rc parameters in the rc file itself. Note
# that you can keep directory level default configurations by placing
# different rc files in the directory that the script runs in.
rc('lines', linewidth=2) # thicker plot lines
rc('grid', color=0.75, linestyle='-') # solid gray grid lines
rc('axes', hold=True, # hold state is on
grid=True, facecolor='y') # yellow background, grid on
rc('tick', color='r', labelsize=20) # big red ticks
def setapi(o, **kwargs):
"""
for all key, value pairs in kwargs, and all objects in (possibly)
iterable o, look for a method o.set_key and try to call
o.set_key(value) if it exists. This is basically a refinition of
the matlab interface set command
"""
if not iterable(o): o = [o]
for thiso in o: # iterate over the objects
for k,v in kwargs.items():
func = getattr(thiso, 'set_'+k)
if func is None: continue
func(v)
def make_fig():
"""
make a figure
No need to close figures or clean up since the objects will be
destroyed when they go out of scope
"""
fig = Figure()
#ax = fig.add_subplot(111) # add a standard subplot
# add an axes at left, bottom, width, height; by making the bottom
# at 0.3, we save some extra room for tick labels
ax = fig.add_axes([0.2, 0.3, 0.7, 0.6])
line, = ax.plot([1,2,3], 'ro--', markersize=12, markerfacecolor='g')
# make a translucent scatter collection
x = nx.rand(100)
y = nx.rand(100)
area = nx.pi*(10 * nx.rand(100))**2 # 0 to 10 point radiuses
c = ax.scatter(x,y,area)
c.set_alpha(0.5)
# add some text decoration
ax.set_title('My first image')
ax.set_ylabel('Some numbers')
ax.set_xticks( (.2,.4,.6,.8) )
labels = ax.set_xticklabels(('Bill', 'Fred', 'Ted', 'Ed'))
# To set object properties, you can either iterate over the
# objects manually, or define you own set command, as in setapi
# above.
#setapi(labels, rotation=45, fontsize=12)
for l in labels:
l.set_rotation(45)
l.set_fontsize(12)
canvas = FigureCanvasAgg(fig)
canvas.print_figure('webapp.png', dpi=150)
make_fig()
|
|
From: Moe A. <mo...@po...> - 2004-10-14 10:23:00
|
Hey, i'm using matplotlib to create plots inside the twisted asynchronous web framework, so i am forced to use the pythonic API to avoid making global calls, however i have 3 questions and would be extremely grateful if anyone could help me out. 1) The online docs say that Figure.__init__ takes a linewidth keyword argument, but it does not. how can i set the linewidth for a figure, and how can i set the fontsize for a figure, without doing weird things like map( lambda t: t.set_fontsize( 6 ), legend.get_texts() ) 2) all of the examples using the pythonic API instantiate a Figure, and then do add_subplot(). this works for me, but matplotlib adds a bunch of space around the figure that i dont need. is there a way around this, or an alternative to add_subplot if i want only one plot? 3) my ticklabels for the X axis happen to be quite lengthy strings, and they overlap if placed horizontally, adjacent to each other. i am using rotation = 45 but then a lot of the text gets clipped off of the bottom of the figure (im setting figsize in the Figure constructor). i am happy with the size of the figure, but would like more space for the text at the bottom. any help will be greatly appreciated. Moe Aboulkheir |
|
From: John H. <jdh...@ac...> - 2004-10-13 21:00:18
|
>>>>> "Humufr" == Humufr <hu...@ya...> writes:
Humufr> Hi, the problem who appearded with the
Humufr> new pygtk version is resolved. Thanks to John and the guys
Humufr> from pygtk.
Humufr> http://bugzilla.gnome.org/show_bug.cgi?id=155304
Great. Thanks for your help testing and tracking this one down. I
updated the matplotlib FAQ
http://matplotlib.sourceforge.net/faq.html#PYGTK24
Make sure that I got it right!
JDH
|
|
From: Humufr <hu...@ya...> - 2004-10-13 20:42:01
|
Hi, the problem who appearded with the new pygtk version is resolved. Thanks to John and the guys from pygtk. http://bugzilla.gnome.org/show_bug.cgi?id=155304 Nicolas |
|
From: Darren D. <dd...@co...> - 2004-10-13 15:50:18
|
On Wednesday 13 October 2004 09:22 am, John Hunter wrote:
> >>>>> "Darren" == Darren Dale <dd...@co...> writes:
>
> Darren> I am seeing some strange behavior during IPython and
> Darren> vanilla Python interactive sessions. My .matplotlibrc is
> Darren> not being respected. I have tried making changes to the
> Darren> copy in my home diretory and the one in
> Darren> /usr/share/matplotlib. If I run the commands below or do
> Darren> an execfile('/home/darren/test.py') from an interactive
> Darren> session, .matplotlibrc is not read. If I run the script
> Darren> from the console, .matplotlibrc is read.
>
> Darren> I'm on gentoo with either 0.63.0 or the current cvs,
> Darren> python 2.3.3. Has anyboody else seen this?
>
>
> Darren> from matplotlib.matlab import * a=[1,10,100,1000,10000]
> Darren> figure(1) loglog(a,a) figure(2) plot(a,a) show()
>
> Changes to rc made after you have started an interactive session would
> not be expected to have an effect -- the rc file is parsed when any
> matplotlib module is imported and not parsed again. If you make some
> obvious change to the rc file in your home dir, say
>
I understand that these .matplotlibrc changes must be made before importing
matplotlib. The problem I was having was that the file was not being read
when starting ipython -pylab. I have reinstalled MPL a couple times now, and
can't reproduce the problem.
Darren
|
|
From: John H. <jdh...@ac...> - 2004-10-13 14:13:06
|
>>>>> "Darren" == Darren Dale <dd...@co...> writes:
Darren> I am seeing some strange behavior during IPython and
Darren> vanilla Python interactive sessions. My .matplotlibrc is
Darren> not being respected. I have tried making changes to the
Darren> copy in my home diretory and the one in
Darren> /usr/share/matplotlib. If I run the commands below or do
Darren> an execfile('/home/darren/test.py') from an interactive
Darren> session, .matplotlibrc is not read. If I run the script
Darren> from the console, .matplotlibrc is read.
Darren> I'm on gentoo with either 0.63.0 or the current cvs,
Darren> python 2.3.3. Has anyboody else seen this?
Darren> from matplotlib.matlab import * a=[1,10,100,1000,10000]
Darren> figure(1) loglog(a,a) figure(2) plot(a,a) show()
Changes to rc made after you have started an interactive session would
not be expected to have an effect -- the rc file is parsed when any
matplotlib module is imported and not parsed again. If you make some
obvious change to the rc file in your home dir, say
figure.facecolor : g # figure facecolor; 0.75 is scalar gray
and *restart* ipython, do the changes take effect?
Note that you don't need to execfile with ipython, since that is what
the ipython 'run' command is for, and run does some smart things
before exec-ing your file, namely turning interactive off for the
duration of the run, which is more efficient.
There has been some interest in a loadrc command, which would be used
to load a specified rc file from the command line or script. Should
be easy to add, and it is on the todo list.
Note that matplotlib in CVS has a new verbose setting which is
described at the bottom of the rc file. By changing the verbose
setting to helpful, it will give you diagnostic information when you
run, including which rc file is loaded. If you continue having
trouble with this, I suggest grabbing the latest from CVS and try
running with verbose : helpful.
JDH
|
|
From: John H. <jdh...@ac...> - 2004-10-13 14:04:51
|
>>>>> "Humufr" == Humufr <hu...@ya...> writes:
Humufr> Hi, I think to have found a bug in axis. You can't
Humufr> choose a multiplelocator with 0.5 or 0.3 for example, you
Humufr> can but the result is not what you're expecting. (see fig1
Humufr> for the effect)
This appears to be a bug in your code
xmajorLocator = MultipleLocator(0.3)
xmajorFormatter = FormatStrFormatter('%d')
^^^
You are telling it to format the numbers as integers. Try
xmajorFormatter = FormatStrFormatter('%1.2f')
Humufr> Another funny script (see scripts2 and scripts3) with tick
Humufr> problem. Compare the two following scripts, the only
Humufr> difference is to tell to yaxis to use the same
Humufr> characteristic than xaxis. The very funny thing is to
Humufr> change the ymajorLocator in xmajorLocator and etc with
Humufr> you're doing the setting for the y axis... That influx in
Humufr> the x axis. See fig2 and fig3.
Humufr> Perhaps (probably) I'm doing something bad but I'm not
Humufr> able to find where.
This is a problem with matplotlib but I don't have a quick fix for
you. I'll look into it more when I get some time. For now, sharing
the same tick locator between multiple axes is not recommended, though
I understand this is a desirable thing to be able to do. You can make
two identical locators, however, and shouldn't have troubles, which if
I understand you correctly, is what you observe.
JDH
|
|
From: Humufr <hu...@ya...> - 2004-10-13 04:58:02
|
Hi John,
I'm using a debian linux with gcc 3.3.5, pygtk 2.4.0, precompiled
It's definitively a problem with pygtk2.4 because I have no problem to
compile with 2.0 (from testing). Morever the problem comes only with the
compilation. If I compile matplotlib with pygtk 2.2.0 I have no problem
to use matplotlib even if I'm upgrading pygtk to 2.4.0. The problem
seems to be in the header who comes from pygtk but I know nothing in
these sort of file so I can't debug it.
Thanks,
Nicolas
> gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared
--with-system-zlib --enable-nls --without-included-gettext
--enable-__cxa_atexit --enable-clocale=gnu --enable-debug
--enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.5 (Debian 1:3.3.5-1)
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O3 -Wall
-Wstrict-prototypes -fPIC -I/usr/local/include -I/usr/include
-I/usr/include/pygtk-2.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/python2.3 -c test.cpp
In file included from /usr/include/python2.3/Python.h:8,
from /usr/include/pygtk-2.0/pygobject.h:5,
from test.cpp:8:
/usr/include/python2.3/pyconfig.h:856:1: warning: "_POSIX_C_SOURCE"
redefined
In file included from /usr/include/string.h:26,
from /usr/include/c++/3.3/cstring:51,
from test.cpp:1:
/usr/include/features.h:131:1: warning: this is the location of the
previous definition
In file included from test.cpp:8:
/usr/include/pygtk-2.0/pygobject.h:140: error: parse error before `typename'
/usr/include/pygtk-2.0/pygobject.h:147: error: parse error before `typename'
and when I put the pkg-config inside the line a obtain exactly the same
thing.
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O3 -Wall
-Wstrict-prototypes -fPIC -I/usr/local/include -I/usr/include
-I/usr/include/pygtk-2.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/python2.3 `pkg-config-c test.cpp
`pkg-config
gruel@wheeloftime:~/Matplotlib$ gcc -pthread -fno-strict-aliasing
-DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include
-I/usr/include -I/usr/include/pygtk-2.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/python2.3 `pkg-config
pygtk-2.0` -c test.cpp
In file included from /usr/include/python2.3/Python.h:8,
from /usr/include/pygtk-2.0/pygobject.h:5,
from test.cpp:8:
/usr/include/python2.3/pyconfig.h:856:1: warning: "_POSIX_C_SOURCE"
redefined
In file included from /usr/include/string.h:26,
from /usr/include/c++/3.3/cstring:51,
from test.cpp:1:
/usr/include/features.h:131:1: warning: this is the location of the
previous definition
In file included from test.cpp:8:
/usr/include/pygtk-2.0/pygobject.h:140: error: parse error before `typename'
/usr/include/pygtk-2.0/pygobject.h:147: error: parse error before `typename'
|
|
From: Darren D. <dd...@co...> - 2004-10-13 00:19:23
|
I am trying to make an animation. The examples provided in matplotlib work very well. In my own closely related code, I am plotting 3 lines, each containing 5000 doubles. Calls to manager.canvas.draw() take 0.4 seconds on my speedy gentoo setup, 0.15 seconds if I dont use mathtext tick labels. So I dont think this has anything to do with my numerix setup. Is there a way around re-rendering the entire canvas? Thanks, Darren |
|
From: John H. <jdh...@ac...> - 2004-10-12 22:52:33
|
Humufr> Hi, like other people in these list, I can't
Humufr> compile matplotlib anymore with pygtk 2.4. I have the same
Humufr> error than the others. I don't know C so I understand
Humufr> nothing in these message. Someone was arriving to correct
Humufr> this problem please?
The failure occurs at line 8 of src/_gtkagg.cpp; there is no
matplotlib code on line 8 or above, so I do not believe it is a
matplotlib problem. I think it is either a pygtk problem or a problem
with your environment (does your pkg-config point to the proper pygtk
install path?). Below is a c++ file that is identical to _gtkagg.cpp
up to the failing line, which is the gobject import. After that it
just prints hello world.
Try compiling it with (where the python include path should point to
Python.h)
> g++ test.cpp `pkg-con-2.0` -I/usr/local/include/python2.3/
Are you using gcc-3.4? This seems to be a specific problem with
gcc-3.4 and pygtk-2.4. It would be helpful if you post your gcc
version, platform and pygtk version.
Please let me know if you learn anything else. If you fail to compile
the minimal example below, check your pygtk pkg-config paths and
consider posting this example to the pygtk mailing list; Niklas posted
and got no response, but he didn't have a minimal example which will
make a world of difference in people's ability to help.
Unfortunately, I don't have access to a machine with gcc-3.4 and the
latest pygtk to test with.
//test.cpp
#include <cstring>
#include <cerrno>
#include <cstdio>
#include <iostream>
#include <cmath>
#include <utility>
#include <pygobject.h>
int main() {
std::cout << "hello gtk" << std::cout;
}
|
|
From: Humufr <hu...@ya...> - 2004-10-12 20:41:58
|
Hi,
like other people in these list, I can't compile matplotlib anymore with
pygtk 2.4. I have the same error than the others. I don't know C so I
understand nothing in these message. Someone was arriving to correct
this problem please?
Thanks,
Nicolas
building 'matplotlib.backends._gtkagg' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -O3 -Wall
-Wstrict-prototypes -fPIC -I/usr/local/include -I/usr/include -Isrc
-Iagg22/include -I. -I/usr/local/include -I/usr/include
-I/usr/local/include/freetype2 -I/usr/include/freetype2 -Isrc/freetype2
-Iagg22/include/freetype2 -I./freetype2 -I/usr/local/include/freetype2
-I/usr/include/freetype2 -I/usr/local/include -I/usr/include
-I/usr/include/pygtk-2.0 -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0
-I/usr/include/pango-1.0 -I/usr/include/freetype2
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-I/usr/include/python2.3 -c src/_gtkagg.cpp -o
build/temp.linux-i686-2.3/src/_gtkagg.o
In file included from /usr/include/python2.3/Python.h:8,
from /usr/include/pygtk-2.0/pygobject.h:5,
from src/_gtkagg.cpp:8:
/usr/include/python2.3/pyconfig.h:856:1: warning: "_POSIX_C_SOURCE"
redefined
In file included from /usr/include/string.h:26,
from /usr/include/c++/3.3/cstring:51,
from src/_gtkagg.cpp:1:
/usr/include/features.h:131:1: warning: this is the location of the
previous definition
In file included from src/_gtkagg.cpp:8:
/usr/include/pygtk-2.0/pygobject.h:140: error: parse error before `typename'
/usr/include/pygtk-2.0/pygobject.h:147: error: parse error before `typename'
error: command 'gcc' failed with exit status 1
|
|
From: John H. <jdh...@ac...> - 2004-10-12 14:12:25
|
>>>>> "BDayton" == BDayton <BD...@co...> writes:
BDayton> Hi,
BDayton> I have produced a figure and used 'fill' to plot regions
BDayton> in that figure. I wanted to place a legend for it, but
BDayton> when I tried it only the labels appeared - no coloured
BDayton> squares indicating the colours of the fills, as you get
BDayton> in Matlab. Is it possible to do this? I noticed in one of
BDayton> the example scripts that it works with a barchart. I
BDayton> would like to use it in the same way, but with 'fill's.
In matplotlib/legend.py, on line 182, try replacing
elif isinstance(handle, Rectangle):
with
elif isinstance(handle, Patch):
and try again. If it fails, please send in an example script that
exposes the problem, but let me know in any case. Note this solution
will still draw a little rectangle in the legend rather than a
miniature polygon the same shape as the fill one, but it will
otherwise have the same properties (eg facecolor). What does matlab do?
Cheers,
JDH
|