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, alpha=1, rgbcolor=(0, 0, 1), thickness=1, legend_label=None, legend_color=None, aspect_ratio='automatic', **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. Useline2d.reset()
to reset to the default options.INPUT:
alpha
– How transparent the line isthickness
– How thick the line isrgbcolor
– The color as an RGB tuplehue
– The color given as a huelegend_color
– The color of the text in the legendlegend_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 pointsmarkeredgecolor
– the color of the marker edgemarkerfacecolor
– the color of the marker facemarkeredgewidth
– 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