|
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
|