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 |