### Navigation

- index
- modules |
- next |
- previous |
- 2D Graphics »

# Line Plots

class `sage.plot.line.``Line`(xdata, ydata, options)

  Bases: `sage.plot.primitive.GraphicPrimitive_xydata`

  Primitive class that initializes the line graphics type.

  EXAMPLES:

      sage: from sage.plot.line import Line
      sage: Line([1,2,7], [1,5,-1], {})
      Line defined by 3 points

  `plot3d`(z=0, **kwds)

    Plots a 2D line in 3D, with default height zero.

    EXAMPLES:

        sage: E = EllipticCurve('37a').plot(thickness=5).plot3d()
        sage: F = EllipticCurve('37a').plot(thickness=5).plot3d(z=2)
        sage: E + F  # long time (5s on sage.math, 2012)
        Graphics3d Object

`sage.plot.line.``line`(points, **kwds)

  Returns either a 2-dimensional or 3-dimensional line depending on value of points.

  INPUT:

  - `points` - either a single point (as a tuple), a list of points, a single complex number, or a list of complex numbers.

  For information regarding additional arguments, see either line2d? or line3d?.

  EXAMPLES:

      sage: line([(0,0), (1,1)])
      Graphics object consisting of 1 graphics primitive

      sage: line([(0,0,1), (1,1,1)])
      Graphics3d Object

`sage.plot.line.``line2d`(points, legend_color=None, rgbcolor=(0, 0, 1), thickness=1, aspect_ratio='automatic', alpha=1, legend_label=None, **options)

  Create the line through the given list of points.

  INPUT:

  - `points` - either a single point (as a tuple), a list of points, a single complex number, or a list of complex numbers.

  Type `line2d.options` for a dictionary of the default options for lines. You can change this to change the defaults for all future lines. Use `line2d.reset()` to reset to the default options.

  INPUT:

  - `alpha` – How transparent the line is
  - `thickness` – How thick the line is
  - `rgbcolor` – The color as an RGB tuple
  - `hue` – The color given as a hue
  - `legend_color` – The color of the text in the legend
  - `legend_label` – the label for this item in the legend

  Any MATPLOTLIB line option may also be passed in. E.g.,

  - `linestyle` - (default: “-”) The style of the line, which is one of
      - `"-"` or `"solid"`
      - `"--"` or `"dashed"`
      - `"-."` or `"dash dot"`
      - `":"` or `"dotted"`
      - `"None"` or `" "` or `""` (nothing)

      The linestyle can also be prefixed with a drawing style (e.g., `"steps--"`)

      - `"default"` (connect the points with straight lines)
      - `"steps"` or `"steps-pre"` (step function; horizontal line is to the left of point)
      - `"steps-mid"` (step function; points are in the middle of horizontal lines)
      - `"steps-post"` (step function; horizontal line is to the right of point)
  - `marker` - The style of the markers, which is one of
      - `"None"` or `" "` or `""` (nothing) – default
      - `","` (pixel), `"."` (point)
      - `"_"` (horizontal line), `"|"` (vertical line)
      - `"o"` (circle), `"p"` (pentagon), `"s"` (square), `"x"` (x), `"+"` (plus), `"*"` (star)
      - `"D"` (diamond), `"d"` (thin diamond)
      - `"H"` (hexagon), `"h"` (alternative hexagon)
      - `"<"` (triangle left), `">"` (triangle right), `"^"` (triangle up), `"v"` (triangle down)
      - `"1"` (tri down), `"2"` (tri up), `"3"` (tri left), `"4"` (tri right)
      - `0` (tick left), `1` (tick right), `2` (tick up), `3` (tick down)
      - `4` (caret left), `5` (caret right), `6` (caret up), `7` (caret down)
      - `"$...$"` (math TeX string)

  - `markersize` – the size of the marker in points

  - `markeredgecolor` – the color of the marker edge

  - `markerfacecolor` – the color of the marker face

  - `markeredgewidth` – the size of the marker edge in points

  EXAMPLES:

  A line with no points or one point:

      sage: line([])      #returns an empty plot
      Graphics object consisting of 0 graphics primitives
      sage: import numpy; line(numpy.array([]))
      Graphics object consisting of 0 graphics primitives
      sage: line([(1,1)])
      Graphics object consisting of 1 graphics primitive

  A line with numpy arrays:

      sage: line(numpy.array([[1,2], [3,4]]))
      Graphics object consisting of 1 graphics primitive

  A line with a legend:

      sage: line([(0,0),(1,1)], legend_label='line')
      Graphics object consisting of 1 graphics primitive

  Lines with different colors in the legend text:

      sage: p1 = line([(0,0),(1,1)], legend_label='line')
      sage: p2 = line([(1,1),(2,4)], legend_label='squared', legend_color='red')
      sage: p1 + p2
      Graphics object consisting of 2 graphics primitives

  Extra options will get passed on to show(), as long as they are valid:

      sage: line([(0,1), (3,4)], figsize=[10, 2])
      Graphics object consisting of 1 graphics primitive
      sage: line([(0,1), (3,4)]).show(figsize=[10, 2]) # These are equivalent

  We can also use a logarithmic scale if the data will support it:

      sage: line([(1,2),(2,4),(3,4),(4,8),(4.5,32)],scale='loglog',base=2)
      Graphics object consisting of 1 graphics primitive

  Many more examples below!

  A blue conchoid of Nicomedes:

      sage: L = [[1+5*cos(pi/2+pi*i/100), tan(pi/2+pi*i/100)*(1+5*cos(pi/2+pi*i/100))] for i in range(1,100)]
      sage: line(L, rgbcolor=(1/4,1/8,3/4))
      Graphics object consisting of 1 graphics primitive

  A line with 2 complex points:

      sage: i = CC.0
      sage: line([1+i, 2+3*i])
      Graphics object consisting of 1 graphics primitive

  A blue hypotrochoid (3 leaves):

      sage: n = 4; h = 3; b = 2
      sage: L = [[n*cos(pi*i/100)+h*cos((n/b)*pi*i/100),n*sin(pi*i/100)-h*sin((n/b)*pi*i/100)] for i in range(200)]
      sage: line(L, rgbcolor=(1/4,1/4,3/4))
      Graphics object consisting of 1 graphics primitive

  A blue hypotrochoid (4 leaves):

      sage: n = 6; h = 5; b = 2
      sage: L = [[n*cos(pi*i/100)+h*cos((n/b)*pi*i/100),n*sin(pi*i/100)-h*sin((n/b)*pi*i/100)] for i in range(200)]
      sage: line(L, rgbcolor=(1/4,1/4,3/4))
      Graphics object consisting of 1 graphics primitive

  A red limacon of Pascal:

      sage: L = [[sin(pi*i/100)+sin(pi*i/50),-(1+cos(pi*i/100)+cos(pi*i/50))] for i in range(-100,101)]
      sage: line(L, rgbcolor=(1,1/4,1/2))
      Graphics object consisting of 1 graphics primitive

  A light green trisectrix of Maclaurin:

      sage: L = [[2*(1-4*cos(-pi/2+pi*i/100)^2),10*tan(-pi/2+pi*i/100)*(1-4*cos(-pi/2+pi*i/100)^2)] for i in range(1,100)]
      sage: line(L, rgbcolor=(1/4,1,1/8))
      Graphics object consisting of 1 graphics primitive

  A green lemniscate of Bernoulli:

      sage: cosines = [cos(-pi/2+pi*i/100) for i in range(201)]
      sage: v = [(1/c, tan(-pi/2+pi*i/100)) for i,c in enumerate(cosines) if c != 0]
      sage: L = [(a/(a^2+b^2), b/(a^2+b^2)) for a,b in v]
      sage: line(L, rgbcolor=(1/4,3/4,1/8))
      Graphics object consisting of 1 graphics primitive

  A red plot of the Jacobi elliptic function \(\text{sn}(x,2)\), \(-3 < x < 3\):

      sage: L = [(i/100.0, real_part(jacobi('sn', i/100.0, 2.0))) for i in
      ....:      range(-300, 300, 30)]
      sage: line(L, rgbcolor=(3/4, 1/4, 1/8))
      Graphics object consisting of 1 graphics primitive

  A red plot of \(J\)-Bessel function \(J_2(x)\), \(0 < x < 10\):

      sage: L = [(i/10.0, bessel_J(2,i/10.0)) for i in range(100)]
      sage: line(L, rgbcolor=(3/4,1/4,5/8))
      Graphics object consisting of 1 graphics primitive

  A purple plot of the Riemann zeta function \(\zeta(1/2 + it)\), \(0 < t < 30\):

      sage: i = CDF.gen()
      sage: v = [zeta(0.5 + n/10 * i) for n in range(300)]
      sage: L = [(z.real(), z.imag()) for z in v]
      sage: line(L, rgbcolor=(3/4,1/2,5/8))
      Graphics object consisting of 1 graphics primitive

  A purple plot of the Hasse-Weil \(L\)-function \(L(E, 1 + it)\), \(-1 < t < 10\):

      sage: E = EllipticCurve('37a')
      sage: vals = E.lseries().values_along_line(1-I, 1+10*I, 100) # critical line
      sage: L = [(z[1].real(), z[1].imag()) for z in vals]
      sage: line(L, rgbcolor=(3/4,1/2,5/8))
      Graphics object consisting of 1 graphics primitive

  A red, blue, and green “cool cat”:

      sage: G = plot(-cos(x), -2, 2, thickness=5, rgbcolor=(0.5,1,0.5))
      sage: P = polygon([[1,2], [5,6], [5,0]], rgbcolor=(1,0,0))
      sage: Q = polygon([(-x,y) for x,y in P[0]], rgbcolor=(0,0,1))
      sage: G + P + Q   # show the plot
      Graphics object consisting of 3 graphics primitives

  TESTS:

  Check that trac ticket #13690 is fixed. The legend label should have circles as markers.:

      sage: line(enumerate(range(2)), marker='o', legend_label='circle')
      Graphics object consisting of 1 graphics primitive

### Navigation

- index
- modules |
- next |
- previous |
- 2D Graphics »