invisilbe line

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

artist.py (2.77 KB)

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