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: Jean-Baptiste C. <Jea...@de...> - 2004-03-15 10:02:13
|
It workls great now ! Thanks Jean-Baptiste On Sun, 14 Mar 2004 13:26:20 -0600 John Hunter <jdh...@ni...> wrote: > >>>>> "Jean-Baptiste" =3D=3D Jean-Baptiste Cazier <Jean-Baptiste.cazier@d= ecode.is> writes: >=20 > lh=3Dlen(h.haplist) > Xrange=3D[map[m] for m in [y for x,y in h.haplist]] > Yrange=3D[-math.log10(h.pval) for i in range(lh)] > line=3Dcanvas.figure.axes[0].plot(Xrange, Yrange, symbol) > line.set_visible(Plot.False) >=20 > Jean-Baptiste> Any idea ? >=20 > plot always return *a list* of lines. So you need to do >=20 > lines =3D canvas.figure.axes[0].plot(Xrange, Yrange, symbol) > lines[0].set_visible(Plot.False) # get the first element of the list >=20 > JDH --=20 ----------------------------- Jea...@de... Department of Statistics deCODE genetics Sturlugata,8 570 2993 101 Reykjav=EDk |
From: John H. <jdh...@ac...> - 2004-03-14 19:48:39
|
>>>>> "Jean-Baptiste" == Jean-Baptiste Cazier <Jea...@de...> writes: lh=len(h.haplist) Xrange=[map[m] for m in [y for x,y in h.haplist]] Yrange=[-math.log10(h.pval) for i in range(lh)] line=canvas.figure.axes[0].plot(Xrange, Yrange, symbol) line.set_visible(Plot.False) Jean-Baptiste> Any idea ? plot always return *a list* of lines. So you need to do lines = canvas.figure.axes[0].plot(Xrange, Yrange, symbol) lines[0].set_visible(Plot.False) # get the first element of the list JDH |
From: Jean-Baptiste C. <Jea...@de...> - 2004-03-14 18:36:18
|
S=E6l ! Thanks for the change of the artist class. It should do exaclty what I want I modified artist accordingly (no more 'transform' defined ? I can run you example witout problem. But If I implement it in my program which is embedded within gtk with the o= bject_picker, it does not work: If I try to set_visible on lines I just define with plot I get an error mes= sage Traceback (most recent call last): File "./novi.py", line 604, in ? main() File "./novi.py", line 576, in main MaxP =3D plot_Haps(canvas, map, Haps) File "./novi.py", line 367, in plot_Haps line =3D plot_hap(canvas, map, h, sym[s]) File "./novi.py", line 389, in plot_hap line.set_visible(Plot.False) AttributeError: 'list' object has no attribute 'set_visible' And this happens even if I redo the full installation of matplotlib 0.51: ... not copying matplotlib/__init__.py (output up-to-date) not copying matplotlib/_matlab_helpers.py (output up-to-date) not copying matplotlib/afm.py (output up-to-date) copying matplotlib/artist.py -> build/lib/matplotlib not copying matplotlib/axes.py (output up-to-date) not copying matplotlib/axis.py (output up-to-date) ... running install_lib not copying build/lib/matplotlib/__init__.py (output up-to-date) not copying build/lib/matplotlib/_matlab_helpers.py (output up-to-date) not copying build/lib/matplotlib/afm.py (output up-to-date) copying build/lib/matplotlib/artist.py -> /usr/lib/python2.2/site-packages/= matplotlib not copying build/lib/matplotlib/axes.py (output up-to-date) not copying build/lib/matplotlib/axis.py (output up-to-date) not copying build/lib/matplotlib/backend_bases.py (output up-to .... skipping byte-compilation of /usr/lib/python2.2/site-packages/matplotlib/_m= atlab_helpers.py to _matlab_helpers.pyc skipping byte-compilation of /usr/lib/python2.2/site-packages/matplotlib/af= m.py to afm.pyc byte-compiling /usr/lib/python2.2/site-packages/matplotlib/artist.py to art= ist.pyc skipping byte-compilation of /usr/lib/python2.2/site-packages/matplotlib/ax= es.py to axes.pyc skipping byte-compilation of /usr/lib/python2.2/site-packages/matplotlib/ax= is.py to axis.pyc ... This is my routine: def plot_hap(canvas, map, h , symbol, size=3DNone): """ plot the specific haplotype """ lh=3Dlen(h.haplist) Xrange=3D[map[m] for m in [y for x,y in h.haplist]] Yrange=3D[-math.log10(h.pval) for i in range(lh)] line=3Dcanvas.figure.axes[0].plot(Xrange, Yrange, symbol) line.set_visible(Plot.False) return line Any idea ? Thanks Jean-Baptiste On Fri, 12 Mar 2004 12:29:18 -0600 John Hunter <jdh...@ni...> wrote: > >>>>> "Jean-Baptiste" =3D=3D Jean-Baptiste Cazier <Jean-Baptiste.cazier@d= ecode.is> writes: >=20 > Jean-Baptiste> S=E6l ! Is there a way to "turn-off" lines without > Jean-Baptiste> removing the data ? My goal is to hide some lines > Jean-Baptiste> in a plot wihtout losing the data so I can show it > Jean-Baptiste> again later. I can do # Hide the line > Jean-Baptiste> x=3Dline.get_xdata() y=3Dline.get_ydata() > Jean-Baptiste> line.set_data([],[]) >=20 > This can be done very easily (for any artist) with a minor > modification of artist.py. The base class forewards all drawing to > the derived classes so no other changes are required. Just replace > artist.py with the attached file below and then you can do: >=20 > from matplotlib.matlab import * >=20 > x =3D arange(0.0, 1.0, 0.05) > l1, l2 =3D plot(x, sin(2*pi*x), x, sin(4*pi*x)) > l1.set_visible(False) > show() >=20 >=20 --=20 ----------------------------- Jea...@de... Department of Statistics deCODE genetics Sturlugata,8 570 2993 101 Reykjav=EDk |
From: Gary P. <pa...@in...> - 2004-03-13 13:18:34
|
I've been poking aroung a bit trying to see if I can locate my plots in a frame in my own Tkinter GUI rather than a stand-alone window. It looks like it might be possible if I can, for example, extract the frame instance from a TkAgg plot (or something like that) Can anyone comment or suggest a route? -gary |
From: John H. <jdh...@ac...> - 2004-03-12 19:10:39
|
>>>>> "Jean-Baptiste" =3D=3D Jean-Baptiste Cazier <Jean-Baptiste.cazier@d= ecode.is> writes: Jean-Baptiste> S=E6l ! Is there a way to "turn-off" lines without Jean-Baptiste> removing the data ? My goal is to hide some lines Jean-Baptiste> in a plot wihtout losing the data so I can show it Jean-Baptiste> again later. I can do # Hide the line Jean-Baptiste> x=3Dline.get_xdata() y=3Dline.get_ydata() Jean-Baptiste> line.set_data([],[]) This can be done very easily (for any artist) with a minor modification of artist.py. The base class forewards all drawing to the derived classes so no other changes are required. Just replace artist.py with the attached file below and then you can do: from matplotlib.matlab import * x =3D arange(0.0, 1.0, 0.05) l1, l2 =3D plot(x, sin(2*pi*x), x, sin(4*pi*x)) l1.set_visible(False) show() |
From: Jean-Baptiste C. <Jea...@de...> - 2004-03-12 12:59:22
|
S=E6l ! Is there a way to "turn-off" lines without removing the data ? My goal is to hide some lines in a plot wihtout losing the data so I can sh= ow it again later. I can do=20 # Hide the line x=3Dline.get_xdata() y=3Dline.get_ydata() line.set_data([],[]) # Reset the line line.set_data(x,y) But I would prefer I more elegant way like line.hide() line.show() Would it be possible to get something like that ? Thanks Jean-Baptiste --=20 ----------------------------- Jea...@de... Department of Statistics deCODE genetics Sturlugata,8 570 2993 101 Reykjav=EDk |
From: Matt F. <mfi...@us...> - 2004-03-12 03:03:54
|
In order to "freeze" your matplotlib-0.51 application using the Agg backend into a standalone executable, the following are the steps you should take: 1. Write your setup.py file that py2exe will use for compiling. Example: # setup.py from distutils.core import setup import py2exe import glob data = glob.glob(r'C:\Python23\share\matplotlib\*') setup( console=["your_file.py"], data_files=[("share",data)] ) . Note that we use "data" here to copy the matplotlibdata "share" folder contents into your /dist/share directory. 2. Insert the following import statements into your_file.py, which is the file containing your matplotlib code: import matplotlib import matplotlib.ft2font import matplotlib.backends.backend_agg import ttfquery from matplotlib.matlab import * 3. Now we must take care of fonts. We're assuming that the machine we're installing to doesn't have the MATPLOTLIBDATA or TTFPATH environment variables set, so we must do the following: In ttfquery\_scriptregistry.py comment out these lines: ### more robust registry-file location by John Hunter... #if os.environ.has_key('HOME'): # registryFile = os.path.join( os.environ['HOME'], ".font.cache") #else: # OpenGLContext uses the Application Data directory for win32, # should consider porting that code here... # registryFile = os.path.join( os.path.split(__file__)[0], "font.cache") And replace with: registryFile = r'share\.font.cache' In matplotlib\__init__.py comment out these lines in the get_data_path() method: #path = os.path.join(distutils.sysconfig.PREFIX, 'share', 'matplotlib') #if os.path.isdir(path): return path #path = os.path.join(os.sep.join(__file__.split(os.sep)[:-5]), # 'share','matplotlib') #if os.path.isdir(path): return path #if os.environ.has_key('MATPLOTLIBDATA'): # path = os.environ['MATPLOTLIBDATA'] # if os.path.isdir(path): return path #raise RuntimeError('Could not find the matplotlib data files') And replace with: return 'share' Also, while you have __init__.py open, in defaultParams you should change the default backend to 'Agg' and default fontname to 'Vera' since it ships with matplotlib. 4. Copy your .font.cache file from /ttfquery into your matplotlibdata /share directory. Your system did a system scan of fonts to generate this file the first time that Agg was run but your "clean" system won't have it. By copying it to share, py2exe will include it in the generated /dist/share directory. That should be it. Many thanks to John Hunter for helping me hack through this, and I hope this information will find its way to others so it can save them lots of time. --Matt |
From: Flavio C. C. <fcc...@ci...> - 2004-03-11 18:03:06
|
John I foud it with the "print trick" thank you!!! the main proble was the self.fig which I replaced with the self.canvas and it is now working, Thanks again On Thu, 2004-03-11 at 13:49, Flavio Codeco Coelho wrote: > -----Forwarded Message----- > From: Flavio Codeco Coelho <fcc...@fi...> > To: mat...@li... > <mat...@li...> > Subject: [Matplotlib-users] embedding in wx segfault > Date: Thu, 11 Mar 2004 12:53:40 -0300 > > > > Hi I have a variant of the embedding_in_wx script that worked fine on > my previous version of matplotlib. Now, with version 0.51 it's seg > faulting. I updated the script to reflect the changes in the library > but still... Can anyone see what may be going wrong? > > thanks > > the script is attached |
From: Flavio C. C. <fcc...@ci...> - 2004-03-11 17:08:29
|
-----Forwarded Message----- From: Flavio Codeco Coelho <fcc...@fi...> To: mat...@li... <mat...@li...> Subject: [Matplotlib-users] embedding in wx segfault Date: Thu, 11 Mar 2004 12:53:40 -0300 Hi I have a variant of the embedding_in_wx script that worked fine on my previous version of matplotlib. Now, with version 0.51 it's seg faulting. I updated the script to reflect the changes in the library but still... Can anyone see what may be going wrong? thanks the script is attached |
From: John H. <jdh...@ac...> - 2004-03-11 16:28:13
|
>>>>> "Flavio" == Flavio Codeco Coelho <fcc...@fi...> writes: Flavio> Hi I have a variant of the embedding_in_wx script that Flavio> worked fine on my previous version of matplotlib. Now, Flavio> with version 0.51 it's seg faulting. I updated the script Flavio> to reflect the changes in the library but still... Can Flavio> anyone see what may be going wrong? Please resend as an attachment - your lines are wrapped and hence the code is doubly difficult to debug. A couple of suggestions: wx swallows exceptions. This makes it virtually impossible to debug scripts using wx since you cannot read the stack trace. The problem may be a simple syntax error in your script having nothing to do with matplotlib or the wx backend per se, and you wouldn't see it because of the exception swallowing problem. Workarounds: 1) insert some print statements at the top of each function so you can see when the failure occurs. This is essentially what Jeremy does in backend_wx. Change the _DEBUG level to a low number in backend_wx to get more debugging information. 2) try running pychecker on your script. A lifetime supply of free bugfixes to any wx guru who knows how to fix this problem - Jeremy and I have certainly suffered with it long enough. JDH |
From: Flavio C. C. <fcc...@fi...> - 2004-03-11 16:12:08
|
Hi I have a variant of the embedding_in_wx script that worked fine on my previous version of matplotlib. Now, with version 0.51 it's seg faulting. I updated the script to reflect the changes in the library but still... Can anyone see what may be going wrong? thanks here is my script: ----------------------------------------------------------------------------- # Name: PlotFigure.py # Purpose: Plotting frame that contains the plots generated by Model Buider # # Author: Flavio C. Coelho # # Created: 2004/09/01 # RCS-ID: $Id: PlotFigure.py,v 1.1 2004/01/13 10:51:43 fccoelho Exp $ # Copyright: (c) 2003 # Licence: GPL # Obs: This code was based on Jeremy Donoghue's embedding_in_wx.py included with # matplotlib. #----------------------------------------------------------------------------- #Boa:Frame:PlotFigure import matplotlib matplotlib.use('WX') from matplotlib.backends.backend_wx import Toolbar, FigureCanvasWx, FigureManager from matplotlib.figure import Figure from matplotlib.axes import Subplot import matplotlib.numerix as numpy from RandomArray import * from wxPython.wx import * def create(parent): return PlotFigure(parent) [wxID_PLOTFIGURE] = map(lambda _init_ctrls: wxNewId(), range(1)) class PlotFigure(wxFrame): def _init_ctrls(self, prnt): # generated method, don't edit wxFrame.__init__(self, id=wxID_PLOTFIGURE, name='Output', parent=prnt, pos=wxPoint(480, 335), size=wxSize(640, 480), style=wxDEFAULT_FRAME_STYLE, title='Results') self.SetClientSize(wxSize(1280, 893)) def __init__(self, parent): self._init_ctrls(parent) self.fig = Figure((10,8), 75) self.canvas = FigureCanvasWx(self,-1, self.fig) self.toolbar = Toolbar(self.canvas) self.toolbar.Realize() # On Windows, default frame size behaviour is incorrect # you don't need this under Linux tw, th = self.toolbar.GetSizeTuple() fw, fh = self.canvas.GetSizeTuple() self.toolbar.SetSize(wxSize(fw, th)) # Create a figure manager to manage things self.figmgr = FigureManager(self.canvas, 1, self) # Now put all into a sizer sizer = wxBoxSizer(wxVERTICAL) # This way of adding to sizer prevents resizing #sizer.Add(self.fig, 0, wxLEFT|wxTOP) # This way of adding to sizer allows resizing sizer.Add(self.fig, 1, wxLEFT|wxTOP|wxGROW) # Best to allow the toolbar to resize! sizer.Add(self.toolbar, 0, wxGROW) self.SetSizer(sizer) self.Fit() def plot_data(self, x,y): """ This function will plot the time series as output by odeint. """ # Use this line if using a toolbar a = self.figmgr.add_subplot(111) # Or this one if there is no toolbar #a = Subplot(self.fig, 111) nvar = min(y[0].shape) for i in range(nvar): a.plot (x,y[0][:,i]) #plot (x,timeseries[1]) a.set_xlabel('Time') a.set_ylabel('Y[i]') a.set_title('Time series') #---generating tuple of legends------------------------------------------------- b = range(nvar) leg = tuple(['y['+str(i)+']' for i in b]) #------------------------------------------------------------------------------- a.legend(leg) self.toolbar.update() def plotStats(self,x, ts): """ This function will plot prior an posteriors for the model variables and parameters. """ # Use this line if using a toolbar a = self.figmgr.add_subplot(111) # Or this one if there is no toolbar #a = Subplot(self.fig, 111) a.plot(x,ts[0], 'r-o',x,ts[1],'b-.', x,ts[2],'b-.') def plotDist(data,vname): """ Plots histograms ofthe prior and posterior distributions of the model components meldOut is the output of the Melding.SIR function: (w,qtiltheta,qtilphi,q1est) """ # Use this line if using a toolbar a = self.figmgr.add_subplot(111) # Or this one if there is no toolbar #a = Subplot(self.fig, 111) nb, bins, patches = a.hist(data, normed=1) a.set_title('Prior Distribution') a.set_xtitle(vname) nvp = len(priors) # Get number of variable + parameters in the model) nlik = len (liks) # Get number of likelihood functions for i in range(nvp): nb, bins, patches = a.hist(priors[i], normed=1) if i > 0: a.figure(i+1) a.set_title('Prior Distribution') def GetToolBar(self): # You will need to override GetToolBar if you are using an # unmanaged toolbar in your frame return self.toolbar if __name__ == '__main__': app = wxPySimpleApp() frame = create(None) x = normal(0,1,50) y = normal(0,1,(5,50)) frame.plot_data(x,y) frame.Show() app.MainLoop() |
From: John H. <jdh...@ac...> - 2004-03-10 20:04:24
|
>>>>> "Kuzminski," == Kuzminski, Stefan R <SKu...@fa...> writes: Kuzminski,> Is there a way for the legend to be outside of the Kuzminski,> axis? Perhaps rendered separately. The current implementation of legend takes an axes instance in it's constructor. I just did a read through of that code and it would be trivial to factor it out. The only thing the legend uses that instance for is the background color! You could have a figure legend much in the same way you have figure text. I can probably do it in 20 minutes. When I get 20 minutes, I'll send you a patch.... JDH |
From: Kuzminski, S. R <SKu...@fa...> - 2004-03-10 19:34:51
|
Is there a way for the legend to be outside of the axis? Perhaps rendered separately. =20 thanks, S |
From: Flavio C. C. <fcc...@fi...> - 2004-03-10 14:37:30
|
Interesting message from the Boa-constructor mailing list.... Anyone would be interested in helping? cheers -------- Mensagem Original -------- Assunto: [Boa Constr] matplotlib plugin Data: Tue, 9 Mar 2004 18:10:57 -0000 De: Ricardo Henriques <pax...@sa...> Para: Boa Constructor <boa...@li...> Ok... I´m going to check if I can make a boa plugin for the matplotlib WX backend. If anyone would like to help =) it would be great.. Tks eveyone for the input about the plotting librarys and features. Ricardo |
From: Al S. <a.d...@wo...> - 2004-03-09 22:18:24
|
There is a minor bug in the object_picker.py example. On the 2nd and subsequent times a line is "picked", if the marker style had been changed previously, the original marker choice "None" no longer appears as a choice in the marker menu. I.e. there is no way to turn off a previously selected marker. Below is a (one line) patch that fixes this. -Al -- Al Schapira <a.d...@wo...> *** /usr/local/matplotlib-0.51/examples/object_picker.py 2004-02-26 15:22:58.000000000 -0500 --- object_picker.py 2004-03-09 16:50:36.000000000 -0500 *************** *** 151,157 **** marker = line.get_marker() if marker is None: marker = 'None' styles = [marker] ! for key in lineMarkers.keys(): if key == marker: continue styles.append(key) --- 151,157 ---- marker = line.get_marker() if marker is None: marker = 'None' styles = [marker] ! for key in keys: if key == marker: continue styles.append(key) |
From: John H. <jdh...@ac...> - 2004-03-09 20:59:49
|
>>>>> "Trevor" == Trevor Blackwell <tl...@an...> writes: Trevor> In backend_gtk.py, it does some antialiased rendering by Trevor> direct manipulation of pixel values which is only correct Trevor> for 24-bit TrueColor X11 visuals. I'm running a 16-bit (5 Trevor> red, 6 green, 5 blue) visual, so this produces visual Trevor> junk. Trevor> I think the right way to do it is with a Pixbuf, which Trevor> handles alpha rendering. The code is much simpler and Trevor> faster too. Here is a patch: Nice!! Where did you learn that trick? pb.pixel_array is not documented at http://www.gnome.org/~james/pygtk-docs/class-gdkpixbuf.html. This is great to know because I can use the same approach to port image handling to gtk once I get that up and running. FYI, your patch was line wrapped but it was simple enough to apply "by eye". JDH |
From: Trevor B. <tl...@an...> - 2004-03-09 20:24:12
|
In backend_gtk.py, it does some antialiased rendering by direct manipulation of pixel values which is only correct for 24-bit TrueColor X11 visuals. I'm running a 16-bit (5 red, 6 green, 5 blue) visual, so this produces visual junk. I think the right way to do it is with a Pixbuf, which handles alpha rendering. The code is much simpler and faster too. Here is a patch: (This is from matplotlib-0.51.) --- backends/backend_gtk.py~ Wed Mar 3 09:31:39 2004 +++ backends/backend_gtk.py Tue Mar 9 12:00:37 2004 @@ -350,47 +351,20 @@ xox = int(x+ox) yoy = int(y+oy) - - imw = min(imw, self.width-xox) imh = min(imh, yoy) - #print imw, imh, xox, yoy, self.width, self.height - image = self.gdkDrawable.get_image(xox, self.height-yoy, imw, imh) - #return - - - tr = int(rgb[0]*255) # text red - tg = int(rgb[1]*255) # text green - tb = int(rgb[2]*255) # text blue - - ind = indices(Xs.shape) - numRows, numCols = Xs.shape - ind.shape = 2, numRows*numCols - Xs.shape = numRows*numCols, - visible = nonzero(Xs>0) - Xs.shape = numRows,numCols - for thisInd in visible: - j,i = ind[:,thisInd] - if i >= imw: continue - if j >= imh: continue - pixel = image.get_pixel(i, j) - br = (pixel >> 16) & 0xff # background red - bg = (pixel >> 8 ) & 0xff - bb = (pixel >> 0) & 0xff - #print br, bg, bb, Xs[j,i] - - alpha = int((255-Xs[j,i])*255) - - nr = (((br - tr) * alpha) + (tr << 16)) >> 16 - ng = (((bg - tg) * alpha) + (tg << 16)) >> 16 - nb = (((bb - tb) * alpha) + (tb << 16)) >> 16 - newpixel = (nr<<16) + (ng<<8) + (nb) - - image.put_pixel(i, j, newpixel) - self.gdkDrawable.draw_image(gc.gdkGC, image, 0, 0, - xox, self.height-yoy, imw, imh) + pb=gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, + has_alpha=1, bits_per_sample=8, width=imw, height=imh) + pbpix=pb.pixel_array + pbpix[:,:,3]=Xs + pbpix[:,:,0]=int(rgb[0]*255) + pbpix[:,:,1]=int(rgb[1]*255) + pbpix[:,:,2]=int(rgb[2]*255) + pb.render_to_drawable(self.gdkDrawable, gc.gdkGC, 0, 0, xox, self.height-yoy, imw, imh, + gdk.RGB_DITHER_NONE, 0, 0) + if 0: self.gdkDrawable.draw_rectangle( gc.gdkGC, 0, xox, -- Trevor Blackwell tl...@an... (650) 210-9272 |
From: John H. <jdh...@ac...> - 2004-03-09 17:41:19
|
>>>>> "Kuzminski," == Kuzminski, Stefan R <SKu...@fa...> writes: Stephan> The GD output looks good when printed, maybe I will Stephan> switch between the 2 ( Agg for display, GD for Stephan> printing ). The Agg un-aliased lines don't come out Stephan> quite as well, they seem to render more of the pixels Stephan> for each point on the line. Nice to have the Stephan> different backend options. This has to do with how agg handles subpixel positioning - I've emailed the agg list and gotten some advice but haven't come up with a good system to make the lines appear the same thickness in the aliased and antialiased cases. I'm still working on it. In the meantime, here is a little backend magic that will make it easier for you to print to your backend of choice. This example displays the image in the default GUI (GTKAgg for me) and prints with GD. from matplotlib.backends.backend_gd import FigureCanvasGD from matplotlib.matlab import * plot([1,2,3]) manager = get_current_fig_manager() canvasgd = manager.canvas.switch_backends(FigureCanvasGD) canvasgd.print_figure('gdfig') show() print_figure takes the same args as savefig. gd has a pesky color allocation bug that I haven't figured out that you may bump into. JDH |
From: Kuzminski, S. R <SKu...@fa...> - 2004-03-09 17:23:43
|
The GD output looks good when printed, maybe I will switch between the 2 ( Agg for display, GD for printing ). The Agg un-aliased lines don't come out quite as well, they seem to render more of the pixels for each point on the line. Nice to have the different backend options. S =20 -----Original Message----- From: John Hunter [mailto:jdh...@ni...]=20 Sent: Monday, March 08, 2004 8:37 AM To: Kuzminski, Stefan R Cc: mat...@li... Subject: Re: [Matplotlib-users] simple api question >>>>> "Kuzminski," =3D=3D Kuzminski, Stefan R <SKu...@fa...> writes: Kuzminski> Thanks, that worked for the line being plotted, Kuzminski> although the legend box and axis are still aliased. Kuzminski> Part of my requirements include supporting Kuzminski> presentation quality printing. I would like to just Kuzminski> use Agg as GD has dependency issues and keeps popping Kuzminski> up other problems ( not to mention how great the Agg Kuzminski> output looks ). But that great looking anti-aliasing Kuzminski> doesn't print well, so ideally there would be a Kuzminski> 'global' level flag that controls aliasing ( or not ) Kuzminski> for everything drawn. I know when the image is being Kuzminski> created for viewing or for printing and so can set the Kuzminski> flag accordingly. I'll work on getting the rest of the objects to respect the antialiased flag. You can control antialiasing for all lines globally with rcParams http://matplotlib.sourceforge.net/faq.html#CUSTOM JDH |
From: John H. <jdh...@ac...> - 2004-03-09 14:00:33
|
>>>>> "Flavio" == Flavio Codeco Coelho <fcc...@ci...> writes: Flavio> I cant install matplotlib because it cant find some files Flavio> in the Font tools tree. Note if you just want wx, set all the BUILD_* flags in setup.py to 0 and distutils won't compile anything; wx doesn't depend on any of the extension code. If you do want to build the extensions from CVS, read on. CVS doesn't have a complete version of the FontTools* and ttfquery that are needed to build the extensions. An increasing number of matplotlib backends need font-finding capabilities which FontTools and ttfquery provide. However, they are a pain to install and Paul Barrett has been working on a replacement. At one point I added them to CVS since I was distributing them with matplotlib but thought twice about it and tried to remove them. However despite multiple attempts I have not been able to get them out of CVS. No in a nutshell there is an incomplete version of FontTools and ttfquery in CVS, and I'm not too inclined to add them since they will be purged in short order in any case with the new fontfinder. If you want to build from CVS, copy the agg, FontTools* and ttfquery dirs/files from the 0.51 src distro into the CVS tree and build from there. This will all be cleared up soon. JDH |
From: Flavio C. C. <fcc...@ci...> - 2004-03-09 13:34:54
|
errata of my last message: I meant to say that: these folders did not come with cvs update -d Summarizing, I cant install matplotlib because it cant find some files in the Font tools tree. |
From: Flavio C. C. <fcc...@fi...> - 2004-03-09 13:29:43
|
hi, I am trying to install the latest CVS and I am getting the following error message: root@iprocc1-164 matplotlib]# python setup.py install running install running build running build_py package init file 'ttfquery/__init__.py' not found (or not a regular file) package init file 'FontTools/__init__.py' not found (or not a regular file) package init file 'FontTools/fontTools/__init__.py' not found (or not a regular file) package init file 'FontTools/fontTools/encodings/__init__.py' not found (or not a regular file) error: package directory 'FontTools/fontTools/misc' does not exist [root@iprocc1-164 matplotlib]# python setup.py install running install running build running build_py package init file 'ttfquery/__init__.py' not found (or not a regular file) package init file 'FontTools/__init__.py' not found (or not a regular file) package init file 'FontTools/fontTools/__init__.py' not found (or not a regular file) package init file 'FontTools/fontTools/encodings/__init__.py' not found (or not a regular file) error: package directory 'FontTools/fontTools/misc' does not exist these folder did come with cvs update -d what wrong here? thanks for any help... FLavio |
From: Flavio C. C. <fcc...@fi...> - 2004-03-09 12:26:32
|
HI everybody, I dont know if any of you is aware of the boa-constructor python IDE and wx gui builder. I use it and subscribe to its mailing list. Recently, there was this discussion about having some scientific plotting controls added to Boa. I include below, a message from Boa's main developer, Ryaan Booysen, where he gives some pointers to anyone that might be interested in adding plotting controls to Boa. They are talking about Chaco, but as far as I know, Chaco development is stalled and Matplotlib is far superior (IMHO). I believe that if anyone is interested in doing that should contact Ryaan. He is a very nice guy. I also believe that it would greatly improve the visibility of matplotlib since Boa has a very large user base. Well, its just an idea. have fun Flavio -----Forwarded Message----- From: Riaan Booysen <riaan@e.co.za> To: Ricardo Henriques <pax...@sa...> Cc: boa...@li... <boa...@li...> Subject: Re: [Boa Constr] Fw: Any Chaco plugins? Date: Tue, 09 Mar 2004 13:33:00 +0200 Hi Ricardo, Ricardo Henriques wrote: > Hi... > I sucessfully used Boa to help me build scientific applications. I normally > use wxPyPlot to plot graphics witch has a plug-in for Boa, it is quite > alright, but sometimes I nead a plotting library with more features like > Chaco found at www.scipy.org . Anyone knows any plug-in for this plotting > library or any other than wxPyPlot? > Where can I get some information about how to build a plug-in for Boa? > Tks... You may look at the examples for adding a control in Plug-ins/UserCompanions.py I suggest you first try to use the Custom Classes feature to use a Chaco Plot window in the Designer. See Docs/boa/apphelp/MixingSource.html This might be a simpler option. Cheers, Riaan. ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Boa-constructor-users mailing list Boa...@li... https://lists.sourceforge.net/lists/listinfo/boa-constructor-users |
From: John H. <jdh...@ac...> - 2004-03-09 11:53:31
|
>>>>> "Vincent" == Vincent BOYER <bo...@cl...> writes: Vincent> Is there a way to do that in Matplotlib? Does the Matlab Vincent> command "hold" have a equivalent in Matplotlib? I didn't Vincent> find it, and if it exists, then I could plot the lines of Vincent> the matrix Y one by one. Hold is on by default. So you can do for y in Y: plot(x,y) To clear the axes between plot commands, use gca. Hope this helps, JDH |
From: Vincent B. <bo...@cl...> - 2004-03-09 11:18:40
|
Hi. I'm trying to plot a matrice against a vector using Matplotlib. Something like we can do with Matlab : plot(x,Y) where x is an Numeric.array of shape (n,) Yis an Numeric.array of shape (m,n) Is there a way to do that in Matplotlib? Does the Matlab command "hold" have a equivalent in Matplotlib? I didn't find it, and if it exists, then I could plot the lines of the matrix Y one by one. Thank you for any information. Vincent |