Sæl !
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 object_picker, it does not work:
If I try to set_visible on lines I just define with plot I get an error message
Traceback (most recent call last):
File "./novi.py", line 604, in ?
main()
File "./novi.py", line 576, in main
MaxP = plot_Haps(canvas, map, Haps)
File "./novi.py", line 367, in plot_Haps
line = 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/_matlab_helpers.py to
_matlab_helpers.pyc
skipping byte-compilation of /usr/lib/python2.2/site-packages/matplotlib/afm.py to afm.pyc
byte-compiling /usr/lib/python2.2/site-packages/matplotlib/artist.py to artist.pyc
skipping byte-compilation of /usr/lib/python2.2/site-packages/matplotlib/axes.py to axes.pyc
skipping byte-compilation of /usr/lib/python2.2/site-packages/matplotlib/axis.py to axis.pyc
...
This is my routine:
def plot_hap(canvas, map, h , symbol, size=None):
""" plot the specific haplotype """
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)
return line
Any idea ?
Thanks
Jean-Baptiste
···
On Fri, 12 Mar 2004 12:29:18 -0600 John Hunter <jdhunter@...8...> wrote:
Jean-Baptiste> Sæl ! 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=line.get_xdata() y=line.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 = arange(0.0, 1.0, 0.05)
l1, l2 = plot(x, sin(2*pi*x), x, sin(4*pi*x))
l1.set_visible(False)
show()
--
-----------------------------
Jean-Baptiste.Cazier@...15...
Department of Statistics
deCODE genetics Sturlugata,8
570 2993 101 Reykjavík