Points¶
- class sage.plot.point.Point(xdata, ydata, options)[source]¶
Bases:
GraphicPrimitive_xydataPrimitive class for the point graphics type. See point?, point2d? or point3d? for information about actually plotting points.
INPUT:
xdata– list of x values for points in Point objectydata– list of y values for points in Point objectoptions– dictionary of valid plot options to pass to constructor
EXAMPLES:
Note this should normally be used indirectly via
point()and friends:sage: from sage.plot.point import Point sage: P = Point([1,2],[2,3],{'alpha':.5}) sage: P Point set defined by 2 point(s) sage: P.options()['alpha'] 0.500000000000000 sage: P.xdata [1, 2]
>>> from sage.all import * >>> from sage.plot.point import Point >>> P = Point([Integer(1),Integer(2)],[Integer(2),Integer(3)],{'alpha':RealNumber('.5')}) >>> P Point set defined by 2 point(s) >>> P.options()['alpha'] 0.500000000000000 >>> P.xdata [1, 2]
- plot3d(z=0, **kwds)[source]¶
Plots a two-dimensional point in 3-D, with default height zero.
INPUT:
z– (optional) 3D height above \(xy\)-plane; may be a list ifselfis a list of points
EXAMPLES:
One point:
sage: A = point((1, 1)) sage: a = A[0]; a Point set defined by 1 point(s) sage: b = a.plot3d()
>>> from sage.all import * >>> A = point((Integer(1), Integer(1))) >>> a = A[Integer(0)]; a Point set defined by 1 point(s) >>> b = a.plot3d()
One point with a height:
sage: A = point((1, 1)) sage: a = A[0]; a Point set defined by 1 point(s) sage: b = a.plot3d(z=3) sage: b.loc[2] 3.0
>>> from sage.all import * >>> A = point((Integer(1), Integer(1))) >>> a = A[Integer(0)]; a Point set defined by 1 point(s) >>> b = a.plot3d(z=Integer(3)) >>> b.loc[Integer(2)] 3.0
Multiple points:
sage: P = point([(0, 0), (1, 1)]) sage: p = P[0]; p Point set defined by 2 point(s) sage: q = p.plot3d(size=22)
>>> from sage.all import * >>> P = point([(Integer(0), Integer(0)), (Integer(1), Integer(1))]) >>> p = P[Integer(0)]; p Point set defined by 2 point(s) >>> q = p.plot3d(size=Integer(22))
Multiple points with different heights:
sage: P = point([(0, 0), (1, 1)]) sage: p = P[0] sage: q = p.plot3d(z=[2,3]) sage: q.all[0].loc[2] 2.0 sage: q.all[1].loc[2] 3.0
>>> from sage.all import * >>> P = point([(Integer(0), Integer(0)), (Integer(1), Integer(1))]) >>> p = P[Integer(0)] >>> q = p.plot3d(z=[Integer(2),Integer(3)]) >>> q.all[Integer(0)].loc[Integer(2)] 2.0 >>> q.all[Integer(1)].loc[Integer(2)] 3.0
Note that keywords passed must be valid point3d options:
sage: A = point((1, 1), size=22) sage: a = A[0]; a Point set defined by 1 point(s) sage: b = a.plot3d() sage: b.size 22 sage: b = a.plot3d(pointsize=23) # only 2D valid option sage: b.size 22 sage: b = a.plot3d(size=23) # correct keyword sage: b.size 23
>>> from sage.all import * >>> A = point((Integer(1), Integer(1)), size=Integer(22)) >>> a = A[Integer(0)]; a Point set defined by 1 point(s) >>> b = a.plot3d() >>> b.size 22 >>> b = a.plot3d(pointsize=Integer(23)) # only 2D valid option >>> b.size 22 >>> b = a.plot3d(size=Integer(23)) # correct keyword >>> b.size 23
- sage.plot.point.point(points, **kwds)[source]¶
Return either a 2-dimensional or 3-dimensional point or sum 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 point2d? or point3d?.
EXAMPLES:
sage: point((1, 2)) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point((Integer(1), Integer(2))) Graphics object consisting of 1 graphics primitive
sage: point((1, 2, 3)) Graphics3d Object
>>> from sage.all import * >>> point((Integer(1), Integer(2), Integer(3))) Graphics3d Object
sage: point([(0, 0), (1, 1)]) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point([(Integer(0), Integer(0)), (Integer(1), Integer(1))]) Graphics object consisting of 1 graphics primitive
sage: point([(0, 0, 1), (1, 1, 1)]) Graphics3d Object
>>> from sage.all import * >>> point([(Integer(0), Integer(0), Integer(1)), (Integer(1), Integer(1), Integer(1))]) Graphics3d Object
Extra options will get passed on to show(), as long as they are valid:
sage: point([(cos(theta), sin(theta)) # needs sage.symbolic ....: for theta in srange(0, 2*pi, pi/8)], frame=True) Graphics object consisting of 1 graphics primitive sage: point([(cos(theta), sin(theta)) # These are equivalent # needs sage.symbolic ....: for theta in srange(0, 2*pi, pi/8)]).show(frame=True)
>>> from sage.all import * >>> point([(cos(theta), sin(theta)) # needs sage.symbolic ... for theta in srange(Integer(0), Integer(2)*pi, pi/Integer(8))], frame=True) Graphics object consisting of 1 graphics primitive >>> point([(cos(theta), sin(theta)) # These are equivalent # needs sage.symbolic ... for theta in srange(Integer(0), Integer(2)*pi, pi/Integer(8))]).show(frame=True)
- sage.plot.point.point2d(points, alpha=1, aspect_ratio='automatic', faceted=False, legend_color=None, legend_label=None, marker='o', markeredgecolor=None, rgbcolor=(0, 0, 1), size=10, **options)[source]¶
A point of size
sizedefined by point = \((x, y)\).INPUT:
points– either a single point (as a tuple), a list of points, a single complex number, or a list of complex numbersalpha– how transparent the point isfaceted– ifTrue, color the edge of the point (only for 2D plots)hue– the color given as a huelegend_color– the color of the legend textlegend_label– the label for this item in the legendmarker– the marker symbol for 2D plots only (see documentation ofplot()for details)markeredgecolor– the color of the marker edge (only for 2D plots)rgbcolor– the color as an RGB tuplesize– how big the point is (i.e., area in points^2=(1/72 inch)^2)zorder– the layer level in which to draw
EXAMPLES:
A purple point from a single tuple of coordinates:
sage: point((0.5, 0.5), rgbcolor=hue(0.75)) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point((RealNumber('0.5'), RealNumber('0.5')), rgbcolor=hue(RealNumber('0.75'))) Graphics object consisting of 1 graphics primitive
Points with customized markers and edge colors:
sage: r = [(random(), random()) for _ in range(10)] sage: point(r, marker='d', markeredgecolor='red', size=20) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> r = [(random(), random()) for _ in range(Integer(10))] >>> point(r, marker='d', markeredgecolor='red', size=Integer(20)) Graphics object consisting of 1 graphics primitive
Passing an empty list returns an empty plot:
sage: point([]) Graphics object consisting of 0 graphics primitives sage: import numpy; point(numpy.array([])) Graphics object consisting of 0 graphics primitives
>>> from sage.all import * >>> point([]) Graphics object consisting of 0 graphics primitives >>> import numpy; point(numpy.array([])) Graphics object consisting of 0 graphics primitives
If you need a 2D point to live in 3-space later, this is possible:
sage: A = point((1, 1)) sage: a = A[0]; a Point set defined by 1 point(s) sage: b = a.plot3d(z=3)
>>> from sage.all import * >>> A = point((Integer(1), Integer(1))) >>> a = A[Integer(0)]; a Point set defined by 1 point(s) >>> b = a.plot3d(z=Integer(3))
This is also true with multiple points:
sage: P = point([(0, 0), (1, 1)]) sage: p = P[0] sage: q = p.plot3d(z=[2,3])
>>> from sage.all import * >>> P = point([(Integer(0), Integer(0)), (Integer(1), Integer(1))]) >>> p = P[Integer(0)] >>> q = p.plot3d(z=[Integer(2),Integer(3)])
Here are some random larger red points, given as a list of tuples:
sage: point(((0.5, 0.5), (1, 2), (0.5, 0.9), (-1, -1)), rgbcolor=hue(1), size=30) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point(((RealNumber('0.5'), RealNumber('0.5')), (Integer(1), Integer(2)), (RealNumber('0.5'), RealNumber('0.9')), (-Integer(1), -Integer(1))), rgbcolor=hue(Integer(1)), size=Integer(30)) Graphics object consisting of 1 graphics primitive
And an example with a legend:
sage: point((0, 0), rgbcolor='black', pointsize=40, legend_label='origin') Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point((Integer(0), Integer(0)), rgbcolor='black', pointsize=Integer(40), legend_label='origin') Graphics object consisting of 1 graphics primitive
The legend can be colored:
sage: P = points([(0, 0), (1, 0)], pointsize=40, ....: legend_label='origin', legend_color='red') sage: P + plot(x^2, (x, 0, 1), legend_label='plot', legend_color='green') # needs sage.symbolic Graphics object consisting of 2 graphics primitives
>>> from sage.all import * >>> P = points([(Integer(0), Integer(0)), (Integer(1), Integer(0))], pointsize=Integer(40), ... legend_label='origin', legend_color='red') >>> P + plot(x**Integer(2), (x, Integer(0), Integer(1)), legend_label='plot', legend_color='green') # needs sage.symbolic Graphics object consisting of 2 graphics primitives
Extra options will get passed on to show(), as long as they are valid:
sage: point([(cos(theta), sin(theta)) # needs sage.symbolic ....: for theta in srange(0, 2*pi, pi/8)], frame=True) Graphics object consisting of 1 graphics primitive sage: point([(cos(theta), sin(theta)) # These are equivalent # needs sage.symbolic ....: for theta in srange(0, 2*pi, pi/8)]).show(frame=True)
>>> from sage.all import * >>> point([(cos(theta), sin(theta)) # needs sage.symbolic ... for theta in srange(Integer(0), Integer(2)*pi, pi/Integer(8))], frame=True) Graphics object consisting of 1 graphics primitive >>> point([(cos(theta), sin(theta)) # These are equivalent # needs sage.symbolic ... for theta in srange(Integer(0), Integer(2)*pi, pi/Integer(8))]).show(frame=True)
For plotting data, we can use a logarithmic scale, as long as we are sure not to include any nonpositive points in the logarithmic direction:
sage: point([(1, 2),(2, 4),(3, 4),(4, 8),(4.5, 32)], scale='semilogy', base=2) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point([(Integer(1), Integer(2)),(Integer(2), Integer(4)),(Integer(3), Integer(4)),(Integer(4), Integer(8)),(RealNumber('4.5'), Integer(32))], scale='semilogy', base=Integer(2)) Graphics object consisting of 1 graphics primitive
Since Sage Version 4.4 (Issue #8599), the size of a 2d point can be given by the argument
sizeinstead ofpointsize. The argumentpointsizeis still supported:sage: point((3, 4), size=100) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point((Integer(3), Integer(4)), size=Integer(100)) Graphics object consisting of 1 graphics primitive
sage: point((3, 4), pointsize=100) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point((Integer(3), Integer(4)), pointsize=Integer(100)) Graphics object consisting of 1 graphics primitive
We can plot a single complex number:
sage: point(1 + I, pointsize=100) # needs sage.symbolic Graphics object consisting of 1 graphics primitive sage: point(sqrt(2) + I, pointsize=100) # needs sage.symbolic Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point(Integer(1) + I, pointsize=Integer(100)) # needs sage.symbolic Graphics object consisting of 1 graphics primitive >>> point(sqrt(Integer(2)) + I, pointsize=Integer(100)) # needs sage.symbolic Graphics object consisting of 1 graphics primitive
We can also plot a list of complex numbers:
sage: point([I, 1 + I, 2 + 2*I], pointsize=100) # needs sage.symbolic Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point([I, Integer(1) + I, Integer(2) + Integer(2)*I], pointsize=Integer(100)) # needs sage.symbolic Graphics object consisting of 1 graphics primitive
- sage.plot.point.points(points, **kwds)[source]¶
Return either a 2-dimensional or 3-dimensional point or sum 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 point2d? or point3d?.
EXAMPLES:
sage: point((1, 2)) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point((Integer(1), Integer(2))) Graphics object consisting of 1 graphics primitive
sage: point((1, 2, 3)) Graphics3d Object
>>> from sage.all import * >>> point((Integer(1), Integer(2), Integer(3))) Graphics3d Object
sage: point([(0, 0), (1, 1)]) Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> point([(Integer(0), Integer(0)), (Integer(1), Integer(1))]) Graphics object consisting of 1 graphics primitive
sage: point([(0, 0, 1), (1, 1, 1)]) Graphics3d Object
>>> from sage.all import * >>> point([(Integer(0), Integer(0), Integer(1)), (Integer(1), Integer(1), Integer(1))]) Graphics3d Object
Extra options will get passed on to show(), as long as they are valid:
sage: point([(cos(theta), sin(theta)) # needs sage.symbolic ....: for theta in srange(0, 2*pi, pi/8)], frame=True) Graphics object consisting of 1 graphics primitive sage: point([(cos(theta), sin(theta)) # These are equivalent # needs sage.symbolic ....: for theta in srange(0, 2*pi, pi/8)]).show(frame=True)
>>> from sage.all import * >>> point([(cos(theta), sin(theta)) # needs sage.symbolic ... for theta in srange(Integer(0), Integer(2)*pi, pi/Integer(8))], frame=True) Graphics object consisting of 1 graphics primitive >>> point([(cos(theta), sin(theta)) # These are equivalent # needs sage.symbolic ... for theta in srange(Integer(0), Integer(2)*pi, pi/Integer(8))]).show(frame=True)