Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > a44f8c7e78ee9c5838c1fb080c9e7630 > files > 1258

python-matplotlib-doc-1.1.1-1mdv2010.1.noarch.rpm

.. _pylab_examples-clippedline:

pylab_examples example code: clippedline.py
===========================================



.. plot:: /home/mandrake/rpm/BUILD/matplotlib-1.1.1/doc/mpl_examples/pylab_examples/clippedline.py

::

    """
    Clip a line according to the current xlimits, and change the marker
    style when zoomed in.
    
    It is not clear this example is still needed or valid; clipping
    is now automatic for Line2D objects when x is sorted in
    ascending order.
    
    """
    
    from matplotlib.lines import Line2D
    import numpy as np
    from pylab import figure, show
    
    class ClippedLine(Line2D):
        """
        Clip the xlimits to the axes view limits -- this example assumes x is sorted
        """
    
        def __init__(self, ax, *args, **kwargs):
            Line2D.__init__(self, *args, **kwargs)
            self.ax = ax
    
    
        def set_data(self, *args, **kwargs):
            Line2D.set_data(self, *args, **kwargs)
            self.recache()
            self.xorig = np.array(self._x)
            self.yorig = np.array(self._y)
    
        def draw(self, renderer):
            xlim = self.ax.get_xlim()
    
            ind0, ind1 = np.searchsorted(self.xorig, xlim)
            self._x = self.xorig[ind0:ind1]
            self._y = self.yorig[ind0:ind1]
            N = len(self._x)
            if N<1000:
                self._marker = 's'
                self._linestyle = '-'
            else:
                self._marker = None
                self._linestyle = '-'
    
    
            Line2D.draw(self, renderer)
    
    
    fig = figure()
    ax = fig.add_subplot(111, autoscale_on=False)
    
    t = np.arange(0.0, 100.0, 0.01)
    s = np.sin(2*np.pi*t)
    line = ClippedLine(ax, t, s, color='g', ls='-', lw=2)
    ax.add_line(line)
    ax.set_xlim(10,30)
    ax.set_ylim(-1.1,1.1)
    show()
    
    
    

Keywords: python, matplotlib, pylab, example, codex (see :ref:`how-to-search-examples`)