(self, *args, **kwds)
return thelines
projplot is a wrapper around :func:`matplotlib.Axes.plot` to take into account the
        spherical projection.

        You can call this function as::

           projplot(theta, phi)        # plot a line going through points at coord (theta, phi)
           projplot(theta, phi, 'bo')  # plot 'o' in blue at coord (theta, phi)
           projplot(thetaphi)          # plot a line going through points at coord (thetaphi[0], thetaphi[1])
           projplot(thetaphi, 'bx')    # idem but with blue 'x'

        Parameters
        ----------
        theta, phi : float, array-like
          Coordinates of point to plot. Can be put into one 2-d array, first line is
          then *theta* and second line is *phi*. See *lonlat* parameter for unit.
        fmt : str
          A format string (see :func:`matplotlib.Axes.plot` for details)
        lonlat : bool, optional
          If True, theta and phi are interpreted as longitude and latitude
          in degree, otherwise, as colatitude and longitude in radian
        coord : {'E', 'G', 'C', None}
          The coordinate system of the points, only used if the coordinate
          coordinate system of the Axes has been defined and in this
          case, a rotation is performed
        rot : None or sequence
          rotation to be applied =(lon, lat, psi) : lon, lat will be position of the
          new Z axis, and psi is rotation around this axis, all in degree.
          if None, no rotation is performed
        direct : bool
          if True, the rotation to center the projection is not
          taken into account

        Notes
        -----
        Other keywords are passed to :func:`matplotlib.Axes.plot`.

        See Also
        --------
        projscatter, projtext
projplot is a wrapper around :func:`matplotlib.Axes.plot` to take into account the
        spherical projection.
projplot is a wrapper around : func : matplotlib . Axes . plot to take into account the spherical projection .
def projplot(self, *args, **kwds):
        """projplot is a wrapper around :func:`matplotlib.Axes.plot` to take into account the
        spherical projection.

        You can call this function as::

           projplot(theta, phi)        # plot a line going through points at coord (theta, phi)
           projplot(theta, phi, 'bo')  # plot 'o' in blue at coord (theta, phi)
           projplot(thetaphi)          # plot a line going through points at coord (thetaphi[0], thetaphi[1])
           projplot(thetaphi, 'bx')    # idem but with blue 'x'

        Parameters
        ----------
        theta, phi : float, array-like
          Coordinates of point to plot. Can be put into one 2-d array, first line is
          then *theta* and second line is *phi*. See *lonlat* parameter for unit.
        fmt : str
          A format string (see :func:`matplotlib.Axes.plot` for details)
        lonlat : bool, optional
          If True, theta and phi are interpreted as longitude and latitude
          in degree, otherwise, as colatitude and longitude in radian
        coord : {'E', 'G', 'C', None}
          The coordinate system of the points, only used if the coordinate
          coordinate system of the Axes has been defined and in this
          case, a rotation is performed
        rot : None or sequence
          rotation to be applied =(lon, lat, psi) : lon, lat will be position of the
          new Z axis, and psi is rotation around this axis, all in degree.
          if None, no rotation is performed
        direct : bool
          if True, the rotation to center the projection is not
          taken into account

        Notes
        -----
        Other keywords are passed to :func:`matplotlib.Axes.plot`.

        See Also
        --------
        projscatter, projtext
        """
        fmt = None
        if len(args) < 1:
            raise ValueError("No argument given")
        if len(args) == 1:
            theta, phi = np.asarray(args[0])
        elif len(args) == 2:
            if type(args[1]) is str:
                fmt = args[1]
                theta, phi = np.asarray(args[0])
            else:
                theta, phi = np.asarray(args[0]), np.asarray(args[1])
        elif len(args) == 3:
            if type(args[2]) is not str:
                raise TypeError("Third argument must be a string")
            else:
                theta, phi = np.asarray(args[0]), np.asarray(args[1])
                fmt = args[2]
        else:
            raise TypeError("Three args maximum")
        rot = kwds.pop("rot", None)
        if rot is not None:
            rot = np.array(np.atleast_1d(rot), copy=1)
            rot.resize(3)
            rot[1] = rot[1] - 90.0
        coord = self.proj.mkcoord(kwds.pop("coord", None))[::-1]
        lonlat = kwds.pop("lonlat", False)
        vec = R.dir2vec(theta, phi, lonlat=lonlat)
        vec = (R.Rotator(rot=rot, coord=coord, eulertype="Y")).I(vec)
        x, y = self.proj.vec2xy(vec, direct=kwds.pop("direct", False))
        x, y = self._make_segment(
            x, y, threshold=kwds.pop("threshold", self._segment_threshold)
        )
        thelines = []
        for xx, yy in zip(x, y):
            if fmt is not None:
                try:  # works in matplotlib 1.3 and earlier
                    linestyle, marker, color = matplotlib.axes._process_plot_format(fmt)
                except:  # matplotlib 1.4 and later
                    (
                        linestyle,
                        marker,
                        color,
                    ) = matplotlib.axes._axes._process_plot_format(fmt)
                kwds.setdefault("linestyle", linestyle)
                kwds.setdefault("marker", marker)
                if color is not None:
                    kwds.setdefault("color", color)
            l = matplotlib.lines.Line2D(xx, yy, **kwds)
            self.add_line(l)
            thelines.append(l)
        return thelines
def projplot ( self , * args , * * kwds ) : fmt = None if len ( args ) < 1 : raise ValueError ( "No argument given" ) if len ( args ) == 1 : theta , phi = np . asarray ( args [ 0 ] ) elif len ( args ) == 2 : if type ( args [ 1 ] ) is str : fmt = args [ 1 ] theta , phi = np . asarray ( args [ 0 ] ) else : theta , phi = np . asarray ( args [ 0 ] ) , np . asarray ( args [ 1 ] ) elif len ( args ) == 3 : if type ( args [ 2 ] ) is not str : raise TypeError ( "Third argument must be a string" ) else : theta , phi = np . asarray ( args [ 0 ] ) , np . asarray ( args [ 1 ] ) fmt = args [ 2 ] else : raise TypeError ( "Three args maximum" ) rot = kwds . pop ( "rot" , None ) if rot is not None : rot = np . array ( np . atleast_1d ( rot ) , copy = 1 ) rot . resize ( 3 ) rot [ 1 ] = rot [ 1 ] - 90.0 coord = self . proj . mkcoord ( kwds . pop ( "coord" , None ) ) [ : : - 1 ] lonlat = kwds . pop ( "lonlat" , False ) vec = R . dir2vec ( theta , phi , lonlat = lonlat ) vec = ( R . Rotator ( rot = rot , coord = coord , eulertype = "Y" ) ) . I ( vec ) x , y = self . proj . vec2xy ( vec , direct = kwds . pop ( "direct" , False ) ) x , y = self . _make_segment ( x , y , threshold = kwds . pop ( "threshold" , self . _segment_threshold ) ) thelines = [ ] for xx , yy in zip ( x , y ) : if fmt is not None : try : # works in matplotlib 1.3 and earlier linestyle , marker , color = matplotlib . axes . _process_plot_format ( fmt ) except : # matplotlib 1.4 and later ( linestyle , marker , color , ) = matplotlib . axes . _axes . _process_plot_format ( fmt ) kwds . setdefault ( "linestyle" , linestyle ) kwds . setdefault ( "marker" , marker ) if color is not None : kwds . setdefault ( "color" , color ) l = matplotlib . lines . Line2D ( xx , yy , * * kwds ) self . add_line ( l ) thelines . append ( l ) return thelines