Line Plots¶
- class sage.plot.line.Line(xdata, ydata, options)¶
Bases:
sage.plot.primitive.GraphicPrimitive_xydataPrimitive 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.optionsfor 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,1) 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