Plotting primitives#

class sage.plot.primitive.GraphicPrimitive(options)[source]#

Bases: WithEqualityById, SageObject

Base class for graphics primitives, e.g., things that knows how to draw themselves in 2D.

EXAMPLES:

We create an object that derives from GraphicPrimitive:

sage: P = line([(-1,-2), (3,5)])
sage: P[0]
Line defined by 2 points
sage: type(P[0])
<class 'sage.plot.line.Line'>
>>> from sage.all import *
>>> P = line([(-Integer(1),-Integer(2)), (Integer(3),Integer(5))])
>>> P[Integer(0)]
Line defined by 2 points
>>> type(P[Integer(0)])
<class 'sage.plot.line.Line'>
options()[source]#

Return the dictionary of options for this graphics primitive.

By default this function verifies that the options are all valid; if any aren’t, then a verbose message is printed with level 0.

EXAMPLES:

sage: from sage.plot.primitive import GraphicPrimitive
sage: GraphicPrimitive({}).options()
{}
>>> from sage.all import *
>>> from sage.plot.primitive import GraphicPrimitive
>>> GraphicPrimitive({}).options()
{}
plot3d(**kwds)[source]#

Plots 3D version of 2D graphics object. Not implemented for base class.

EXAMPLES:

sage: from sage.plot.primitive import GraphicPrimitive
sage: G=GraphicPrimitive({})
sage: G.plot3d()
Traceback (most recent call last):
...
NotImplementedError: 3D plotting not implemented for Graphics primitive
>>> from sage.all import *
>>> from sage.plot.primitive import GraphicPrimitive
>>> G=GraphicPrimitive({})
>>> G.plot3d()
Traceback (most recent call last):
...
NotImplementedError: 3D plotting not implemented for Graphics primitive
set_options(new_options)[source]#

Change the options to \(new_options\).

EXAMPLES:

sage: from sage.plot.circle import Circle
sage: c = Circle(0,0,1,{})
sage: c.set_options({'thickness': 0.6})
sage: c.options()
{'thickness': 0.6...}
>>> from sage.all import *
>>> from sage.plot.circle import Circle
>>> c = Circle(Integer(0),Integer(0),Integer(1),{})
>>> c.set_options({'thickness': RealNumber('0.6')})
>>> c.options()
{'thickness': 0.6...}
set_zorder(zorder)[source]#

Set the layer in which to draw the object.

EXAMPLES:

sage: P = line([(-2,-3), (3,4)], thickness=4)
sage: p=P[0]
sage: p.set_zorder(2)
sage: p.options()['zorder']
2
sage: Q = line([(-2,-4), (3,5)], thickness=4,zorder=1,hue=.5)
sage: P+Q # blue line on top
Graphics object consisting of 2 graphics primitives
sage: q=Q[0]
sage: q.set_zorder(3)
sage: P+Q # teal line on top
Graphics object consisting of 2 graphics primitives
sage: q.options()['zorder']
3
>>> from sage.all import *
>>> P = line([(-Integer(2),-Integer(3)), (Integer(3),Integer(4))], thickness=Integer(4))
>>> p=P[Integer(0)]
>>> p.set_zorder(Integer(2))
>>> p.options()['zorder']
2
>>> Q = line([(-Integer(2),-Integer(4)), (Integer(3),Integer(5))], thickness=Integer(4),zorder=Integer(1),hue=RealNumber('.5'))
>>> P+Q # blue line on top
Graphics object consisting of 2 graphics primitives
>>> q=Q[Integer(0)]
>>> q.set_zorder(Integer(3))
>>> P+Q # teal line on top
Graphics object consisting of 2 graphics primitives
>>> q.options()['zorder']
3
class sage.plot.primitive.GraphicPrimitive_xydata(options)[source]#

Bases: GraphicPrimitive

get_minmax_data()[source]#

Returns a dictionary with the bounding box data.

EXAMPLES:

sage: d = polygon([[1,2], [5,6], [5,0]], rgbcolor=(1,0,1))[0].get_minmax_data()
sage: d['ymin']
0.0
sage: d['xmin']
1.0
>>> from sage.all import *
>>> d = polygon([[Integer(1),Integer(2)], [Integer(5),Integer(6)], [Integer(5),Integer(0)]], rgbcolor=(Integer(1),Integer(0),Integer(1)))[Integer(0)].get_minmax_data()
>>> d['ymin']
0.0
>>> d['xmin']
1.0
sage: d = point((3, 3), rgbcolor=hue(0.75))[0].get_minmax_data()
sage: d['xmin']
3.0
sage: d['ymin']
3.0
>>> from sage.all import *
>>> d = point((Integer(3), Integer(3)), rgbcolor=hue(RealNumber('0.75')))[Integer(0)].get_minmax_data()
>>> d['xmin']
3.0
>>> d['ymin']
3.0
sage: l = line([(100, 100), (120, 120)])[0]
sage: d = l.get_minmax_data()
sage: d['xmin']
100.0
sage: d['xmax']
120.0
>>> from sage.all import *
>>> l = line([(Integer(100), Integer(100)), (Integer(120), Integer(120))])[Integer(0)]
>>> d = l.get_minmax_data()
>>> d['xmin']
100.0
>>> d['xmax']
120.0