Toric plotter¶
This module provides a helper class ToricPlotter
for producing plots
of objects related to toric geometry. Default plotting objects can be adjusted
using options()
and reset using reset_options()
.
AUTHORS:
Andrey Novoseltsev (2010-10-03): initial version, using some code bits by Volker Braun.
EXAMPLES:
In most cases, this module is used indirectly, e.g.
sage: fan = toric_varieties.dP6().fan() # needs palp sage.graphs
sage: fan.plot() # needs palp sage.graphs sage.plot
Graphics object consisting of 31 graphics primitives
>>> from sage.all import *
>>> fan = toric_varieties.dP6().fan() # needs palp sage.graphs
>>> fan.plot() # needs palp sage.graphs sage.plot
Graphics object consisting of 31 graphics primitives
fan = toric_varieties.dP6().fan() # needs palp sage.graphs fan.plot() # needs palp sage.graphs sage.plot
You may change default plotting options as follows:
sage: toric_plotter.options("show_rays")
True
sage: toric_plotter.options(show_rays=False)
sage: toric_plotter.options("show_rays")
False
sage: fan.plot() # needs palp sage.graphs sage.plot
Graphics object consisting of 19 graphics primitives
sage: toric_plotter.reset_options()
sage: toric_plotter.options("show_rays")
True
sage: fan.plot() # needs palp sage.graphs sage.plot
Graphics object consisting of 31 graphics primitives
>>> from sage.all import *
>>> toric_plotter.options("show_rays")
True
>>> toric_plotter.options(show_rays=False)
>>> toric_plotter.options("show_rays")
False
>>> fan.plot() # needs palp sage.graphs sage.plot
Graphics object consisting of 19 graphics primitives
>>> toric_plotter.reset_options()
>>> toric_plotter.options("show_rays")
True
>>> fan.plot() # needs palp sage.graphs sage.plot
Graphics object consisting of 31 graphics primitives
toric_plotter.options("show_rays") toric_plotter.options(show_rays=False) toric_plotter.options("show_rays") fan.plot() # needs palp sage.graphs sage.plot toric_plotter.reset_options() toric_plotter.options("show_rays") fan.plot() # needs palp sage.graphs sage.plot
- class sage.geometry.toric_plotter.ToricPlotter(all_options, dimension, generators=None)[source]¶
Bases:
SageObject
Create a toric plotter.
INPUT:
all_options
– adictionary
, containing any of the options related to toric objects (seeoptions()
) and any other options that will be passed to lower level plotting functionsdimension
– integer (1, 2, or 3); dimension of toric objects to be plottedgenerators
– (optional) a list of ray generators; see examples for a detailed explanation of this argument
OUTPUT: a toric plotter
EXAMPLES:
In most cases there is no need to create and use
ToricPlotter
directly. Instead, use plotting method of the object which you want to plot, e.g.sage: fan = toric_varieties.dP6().fan() # needs palp sage.graphs sage: fan.plot() # needs palp sage.graphs sage.plot Graphics object consisting of 31 graphics primitives sage: print(fan.plot()) # needs palp sage.graphs sage.plot Graphics object consisting of 31 graphics primitives
>>> from sage.all import * >>> fan = toric_varieties.dP6().fan() # needs palp sage.graphs >>> fan.plot() # needs palp sage.graphs sage.plot Graphics object consisting of 31 graphics primitives >>> print(fan.plot()) # needs palp sage.graphs sage.plot Graphics object consisting of 31 graphics primitives
fan = toric_varieties.dP6().fan() # needs palp sage.graphs fan.plot() # needs palp sage.graphs sage.plot print(fan.plot()) # needs palp sage.graphs sage.plot
If you do want to create your own plotting function for some toric structure, the anticipated usage of toric plotters is the following:
collect all necessary options in a dictionary;
pass these options and
dimension
toToricPlotter
;call
include_points()
on ray generators and any other points that you want to be present on the plot (it will try to set appropriate cut-off bounds);call
adjust_options()
to choose “nice” default values for all options that were not set yet and ensure consistency of rectangular and spherical cut-off bounds;call
set_rays()
on ray generators to scale them to the cut-off bounds of the plot;call appropriate
plot_*
functions to actually construct the plot.
For example, the plot from the previous example can be obtained as follows:
sage: # needs palp sage.graphs sage.plot sage: from sage.geometry.toric_plotter import ToricPlotter sage: options = dict() # use default for everything sage: tp = ToricPlotter(options, fan.lattice().degree()) sage: tp.include_points(fan.rays()) sage: tp.adjust_options() sage: tp.set_rays(fan.rays()) sage: result = tp.plot_lattice() sage: result += tp.plot_rays() sage: result += tp.plot_generators() sage: result += tp.plot_walls(fan(2)) sage: result Graphics object consisting of 31 graphics primitives
>>> from sage.all import * >>> # needs palp sage.graphs sage.plot >>> from sage.geometry.toric_plotter import ToricPlotter >>> options = dict() # use default for everything >>> tp = ToricPlotter(options, fan.lattice().degree()) >>> tp.include_points(fan.rays()) >>> tp.adjust_options() >>> tp.set_rays(fan.rays()) >>> result = tp.plot_lattice() >>> result += tp.plot_rays() >>> result += tp.plot_generators() >>> result += tp.plot_walls(fan(Integer(2))) >>> result Graphics object consisting of 31 graphics primitives
# needs palp sage.graphs sage.plot from sage.geometry.toric_plotter import ToricPlotter options = dict() # use default for everything tp = ToricPlotter(options, fan.lattice().degree()) tp.include_points(fan.rays()) tp.adjust_options() tp.set_rays(fan.rays()) result = tp.plot_lattice() result += tp.plot_rays() result += tp.plot_generators() result += tp.plot_walls(fan(2)) result
In most situations it is only necessary to include generators of rays, in this case they can be passed to the constructor as an optional argument. In the example above, the toric plotter can be completely set up using
sage: tp = ToricPlotter(options, fan.lattice().degree(), fan.rays()) # needs palp sage.graphs sage.plot
>>> from sage.all import * >>> tp = ToricPlotter(options, fan.lattice().degree(), fan.rays()) # needs palp sage.graphs sage.plot
tp = ToricPlotter(options, fan.lattice().degree(), fan.rays()) # needs palp sage.graphs sage.plot
All options are exposed as attributes of toric plotters and can be modified after constructions, however you will have to manually call
adjust_options()
andset_rays()
again if you decide to change the plotting mode and/or cut-off bounds. Otherwise plots maybe invalid.- adjust_options()[source]¶
Adjust plotting options.
This function determines appropriate default values for those options, that were not specified by the user, based on the other options. See
ToricPlotter
for a detailed example.OUTPUT: none
- include_points(points, force=False)[source]¶
Try to include
points
into the bounding box ofself
.INPUT:
points
– list of pointsforce
– boolean (default:False
); by default, only bounds that were not set before will be chosen to includepoints
. Useforce=True
if you don’t mind increasing existing bounding box.
OUTPUT: none
EXAMPLES:
sage: from sage.geometry.toric_plotter import ToricPlotter sage: tp = ToricPlotter(dict(), 2) sage: print(tp.radius) None sage: tp.include_points([(3, 4)]) sage: print(tp.radius) 5.5... sage: tp.include_points([(5, 12)]) sage: print(tp.radius) 5.5... sage: tp.include_points([(5, 12)], force=True) sage: print(tp.radius) 13.5...
>>> from sage.all import * >>> from sage.geometry.toric_plotter import ToricPlotter >>> tp = ToricPlotter(dict(), Integer(2)) >>> print(tp.radius) None >>> tp.include_points([(Integer(3), Integer(4))]) >>> print(tp.radius) 5.5... >>> tp.include_points([(Integer(5), Integer(12))]) >>> print(tp.radius) 5.5... >>> tp.include_points([(Integer(5), Integer(12))], force=True) >>> print(tp.radius) 13.5...
from sage.geometry.toric_plotter import ToricPlotter tp = ToricPlotter(dict(), 2) print(tp.radius) tp.include_points([(3, 4)]) print(tp.radius) tp.include_points([(5, 12)]) print(tp.radius) tp.include_points([(5, 12)], force=True) print(tp.radius)
- plot_generators()[source]¶
Plot ray generators.
Ray generators must be specified during construction or using
set_rays()
before calling this method.OUTPUT: a plot
EXAMPLES:
sage: from sage.geometry.toric_plotter import ToricPlotter sage: tp = ToricPlotter(dict(), 2, [(3,4)]) sage: tp.plot_generators() # needs sage.plot Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> from sage.geometry.toric_plotter import ToricPlotter >>> tp = ToricPlotter(dict(), Integer(2), [(Integer(3),Integer(4))]) >>> tp.plot_generators() # needs sage.plot Graphics object consisting of 1 graphics primitive
from sage.geometry.toric_plotter import ToricPlotter tp = ToricPlotter(dict(), 2, [(3,4)]) tp.plot_generators() # needs sage.plot
- plot_labels(labels, positions)[source]¶
Plot
labels
at specifiedpositions
.INPUT:
labels
– string or list of stringspositions
– list of points
OUTPUT: a plot
EXAMPLES:
sage: from sage.geometry.toric_plotter import ToricPlotter sage: tp = ToricPlotter(dict(), 2) sage: tp.plot_labels("u", [(1.5,0)]) # needs sage.plot Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> from sage.geometry.toric_plotter import ToricPlotter >>> tp = ToricPlotter(dict(), Integer(2)) >>> tp.plot_labels("u", [(RealNumber('1.5'),Integer(0))]) # needs sage.plot Graphics object consisting of 1 graphics primitive
from sage.geometry.toric_plotter import ToricPlotter tp = ToricPlotter(dict(), 2) tp.plot_labels("u", [(1.5,0)]) # needs sage.plot
- plot_lattice()[source]¶
Plot the lattice (i.e. its points in the cut-off bounds of
self
).OUTPUT: a plot
EXAMPLES:
sage: from sage.geometry.toric_plotter import ToricPlotter sage: tp = ToricPlotter(dict(), 2) sage: tp.adjust_options() sage: tp.plot_lattice() # needs sage.plot Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> from sage.geometry.toric_plotter import ToricPlotter >>> tp = ToricPlotter(dict(), Integer(2)) >>> tp.adjust_options() >>> tp.plot_lattice() # needs sage.plot Graphics object consisting of 1 graphics primitive
from sage.geometry.toric_plotter import ToricPlotter tp = ToricPlotter(dict(), 2) tp.adjust_options() tp.plot_lattice() # needs sage.plot
- plot_points(points)[source]¶
Plot given
points
.INPUT:
points
– list of points
OUTPUT: a plot
EXAMPLES:
sage: from sage.geometry.toric_plotter import ToricPlotter sage: tp = ToricPlotter(dict(), 2) sage: tp.adjust_options() sage: tp.plot_points([(1,0), (0,1)]) # needs sage.plot Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> from sage.geometry.toric_plotter import ToricPlotter >>> tp = ToricPlotter(dict(), Integer(2)) >>> tp.adjust_options() >>> tp.plot_points([(Integer(1),Integer(0)), (Integer(0),Integer(1))]) # needs sage.plot Graphics object consisting of 1 graphics primitive
from sage.geometry.toric_plotter import ToricPlotter tp = ToricPlotter(dict(), 2) tp.adjust_options() tp.plot_points([(1,0), (0,1)]) # needs sage.plot
- plot_ray_labels()[source]¶
Plot ray labels.
Usually ray labels are plotted together with rays, but in some cases it is desirable to output them separately.
Ray generators must be specified during construction or using
set_rays()
before calling this method.OUTPUT: a plot
EXAMPLES:
sage: from sage.geometry.toric_plotter import ToricPlotter sage: tp = ToricPlotter(dict(), 2, [(3,4)]) sage: tp.plot_ray_labels() # needs sage.plot Graphics object consisting of 1 graphics primitive
>>> from sage.all import * >>> from sage.geometry.toric_plotter import ToricPlotter >>> tp = ToricPlotter(dict(), Integer(2), [(Integer(3),Integer(4))]) >>> tp.plot_ray_labels() # needs sage.plot Graphics object consisting of 1 graphics primitive
from sage.geometry.toric_plotter import ToricPlotter tp = ToricPlotter(dict(), 2, [(3,4)]) tp.plot_ray_labels() # needs sage.plot
- plot_rays()[source]¶
Plot rays and their labels.
Ray generators must be specified during construction or using
set_rays()
before calling this method.OUTPUT: a plot
EXAMPLES:
sage: from sage.geometry.toric_plotter import ToricPlotter sage: tp = ToricPlotter(dict(), 2, [(3,4)]) sage: tp.plot_rays() # needs sage.plot Graphics object consisting of 2 graphics primitives
>>> from sage.all import * >>> from sage.geometry.toric_plotter import ToricPlotter >>> tp = ToricPlotter(dict(), Integer(2), [(Integer(3),Integer(4))]) >>> tp.plot_rays() # needs sage.plot Graphics object consisting of 2 graphics primitives
from sage.geometry.toric_plotter import ToricPlotter tp = ToricPlotter(dict(), 2, [(3,4)]) tp.plot_rays() # needs sage.plot
- plot_walls(walls)[source]¶
Plot
walls
, i.e. 2-d cones, and their labels.Ray generators must be specified during construction or using
set_rays()
before calling this method and these specified ray generators will be used in conjunction withambient_ray_indices()
ofwalls
.INPUT:
walls
– list of 2-d cones
OUTPUT: a plot
EXAMPLES:
sage: quadrant = Cone([(1,0), (0,1)]) sage: from sage.geometry.toric_plotter import ToricPlotter sage: tp = ToricPlotter(dict(), 2, quadrant.rays()) sage: tp.plot_walls([quadrant]) # needs sage.plot Graphics object consisting of 2 graphics primitives
>>> from sage.all import * >>> quadrant = Cone([(Integer(1),Integer(0)), (Integer(0),Integer(1))]) >>> from sage.geometry.toric_plotter import ToricPlotter >>> tp = ToricPlotter(dict(), Integer(2), quadrant.rays()) >>> tp.plot_walls([quadrant]) # needs sage.plot Graphics object consisting of 2 graphics primitives
quadrant = Cone([(1,0), (0,1)]) from sage.geometry.toric_plotter import ToricPlotter tp = ToricPlotter(dict(), 2, quadrant.rays()) tp.plot_walls([quadrant]) # needs sage.plot
Let’s also check that the truncating polyhedron is functioning correctly:
sage: tp = ToricPlotter({"mode": "box"}, 2, quadrant.rays()) sage: tp.plot_walls([quadrant]) # needs sage.plot Graphics object consisting of 2 graphics primitives
>>> from sage.all import * >>> tp = ToricPlotter({"mode": "box"}, Integer(2), quadrant.rays()) >>> tp.plot_walls([quadrant]) # needs sage.plot Graphics object consisting of 2 graphics primitives
tp = ToricPlotter({"mode": "box"}, 2, quadrant.rays()) tp.plot_walls([quadrant]) # needs sage.plot
- set_rays(generators)[source]¶
Set up rays and their
generators
to be used by plotting functions.As an alternative to using this method, you can pass
generators
toToricPlotter
constructor.INPUT:
generators
– list of primitive nonzero ray generators
OUTPUT: none
EXAMPLES:
sage: from sage.geometry.toric_plotter import ToricPlotter sage: tp = ToricPlotter(dict(), 2) sage: tp.adjust_options() sage: tp.plot_rays() # needs sage.plot Traceback (most recent call last): ... AttributeError: 'ToricPlotter' object has no attribute 'rays'... sage: tp.set_rays([(0,1)]) sage: tp.plot_rays() # needs sage.plot Graphics object consisting of 2 graphics primitives
>>> from sage.all import * >>> from sage.geometry.toric_plotter import ToricPlotter >>> tp = ToricPlotter(dict(), Integer(2)) >>> tp.adjust_options() >>> tp.plot_rays() # needs sage.plot Traceback (most recent call last): ... AttributeError: 'ToricPlotter' object has no attribute 'rays'... >>> tp.set_rays([(Integer(0),Integer(1))]) >>> tp.plot_rays() # needs sage.plot Graphics object consisting of 2 graphics primitives
from sage.geometry.toric_plotter import ToricPlotter tp = ToricPlotter(dict(), 2) tp.adjust_options() tp.plot_rays() # needs sage.plot tp.set_rays([(0,1)]) tp.plot_rays() # needs sage.plot
- sage.geometry.toric_plotter.color_list(color, n)[source]¶
Normalize a list of
n
colors.INPUT:
color
– anything specifying aColor
, a list of such specifications, or the string “rainbow”;n
– integer
OUTPUT: list of
n
colorsIf
color
specified a single color, it is repeatedn
times. If it was a list ofn
colors, it is returned without changes. If it was “rainbow”, the rainbow ofn
colors is returned.EXAMPLES:
sage: # needs sage.plot sage: from sage.geometry.toric_plotter import color_list sage: color_list("grey", 1) [RGB color (0.5019607843137255, 0.5019607843137255, 0.5019607843137255)] sage: len(color_list("grey", 3)) 3 sage: L = color_list("rainbow", 3) sage: L [RGB color (1.0, 0.0, 0.0), RGB color (0.0, 1.0, 0.0), RGB color (0.0, 0.0, 1.0)] sage: color_list(L, 3) [RGB color (1.0, 0.0, 0.0), RGB color (0.0, 1.0, 0.0), RGB color (0.0, 0.0, 1.0)] sage: color_list(L, 4) Traceback (most recent call last): ... ValueError: expected 4 colors, got 3!
>>> from sage.all import * >>> # needs sage.plot >>> from sage.geometry.toric_plotter import color_list >>> color_list("grey", Integer(1)) [RGB color (0.5019607843137255, 0.5019607843137255, 0.5019607843137255)] >>> len(color_list("grey", Integer(3))) 3 >>> L = color_list("rainbow", Integer(3)) >>> L [RGB color (1.0, 0.0, 0.0), RGB color (0.0, 1.0, 0.0), RGB color (0.0, 0.0, 1.0)] >>> color_list(L, Integer(3)) [RGB color (1.0, 0.0, 0.0), RGB color (0.0, 1.0, 0.0), RGB color (0.0, 0.0, 1.0)] >>> color_list(L, Integer(4)) Traceback (most recent call last): ... ValueError: expected 4 colors, got 3!
# needs sage.plot from sage.geometry.toric_plotter import color_list color_list("grey", 1) len(color_list("grey", 3)) L = color_list("rainbow", 3) L color_list(L, 3) color_list(L, 4)
- sage.geometry.toric_plotter.label_list(label, n, math_mode, index_set=None)[source]¶
Normalize a list of
n
labels.INPUT:
label
–None
, a string, or a list of stringn
– integermath_mode
– boolean; ifTrue
, will produce LaTeX expressions for labelsindex_set
– list of integers (default:range(n)
) that will be used as subscripts for labels
OUTPUT: list of
n
labelsIf
label
was a list ofn
entries, it is returned without changes. Iflabel
isNone
, a list ofn
None
’s is returned. Iflabel
is a string, a list of strings of the form$label_{i}$
is returned, where \(i\) ranges overindex_set
. (Ifmath_mode=False
, the form “label_i” is used instead.) Ifn=1
, there is no subscript added, unlessindex_set
was specified explicitly.EXAMPLES:
sage: from sage.geometry.toric_plotter import label_list sage: label_list("u", 3, False) ['u_0', 'u_1', 'u_2'] sage: label_list("u", 3, True) ['$u_{0}$', '$u_{1}$', '$u_{2}$'] sage: label_list("u", 1, True) ['$u$']
>>> from sage.all import * >>> from sage.geometry.toric_plotter import label_list >>> label_list("u", Integer(3), False) ['u_0', 'u_1', 'u_2'] >>> label_list("u", Integer(3), True) ['$u_{0}$', '$u_{1}$', '$u_{2}$'] >>> label_list("u", Integer(1), True) ['$u$']
from sage.geometry.toric_plotter import label_list label_list("u", 3, False) label_list("u", 3, True) label_list("u", 1, True)
- sage.geometry.toric_plotter.options(option=None, **kwds)[source]¶
Get or set options for plots of toric geometry objects.
Note
This function provides access to global default options. Any of these options can be overridden by passing them directly to plotting functions. See also
reset_options()
.INPUT:
None;
OR:
option
– string, name of the option whose value you wish to get;
OR:
keyword arguments specifying new values for one or more options.
OUTPUT:
if there was no input, the dictionary of current options for toric plots;
if
option
argument was given, the current value ofoption
;if other keyword arguments were given, none.
Name Conventions
To clearly distinguish parts of toric plots, in options and methods we use the following name conventions:
- Generator
A primitive integral vector generating a 1-dimensional cone, plotted as an arrow from the origin (or a line, if the head of the arrow is beyond cut-off bounds for the plot).
- Ray
A 1-dimensional cone, plotted as a line from the origin to the cut-off bounds for the plot.
- Wall
A 2-dimensional cone, plotted as a region between rays (in the above sense). Its exact shape depends on the plotting mode (see below).
- Chamber
A 3-dimensional cone, plotting is not implemented yet.
Plotting Modes
A plotting mode mostly determines the shape of the cut-off region (which is always relevant for toric plots except for trivial objects consisting of the origin only). The following options are available:
- Box
The cut-off region is a box with edges parallel to coordinate axes.
- Generators
The cut-off region is determined by primitive integral generators of rays. Note that this notion is well-defined only for rays and walls, in particular you should plot the lattice on your own (
plot_lattice()
will use box mode which is likely to be unsuitable). While this method may not be suitable for general fans, it is quite natural for fans ofCPR-Fano toric varieties. <sage.schemes.toric.fano_variety.CPRFanoToricVariety_field
- Round
The cut-off regions is a sphere centered at the origin.
Available Options
Default values for the following options can be set using this function:
mode
– “box”, “generators”, or “round”, see above for descriptions;show_lattice
– boolean, whether to show lattice points in the cut-off region or not;show_rays
– boolean, whether to show rays or not;show_generators
– boolean, whether to show rays or not;show_walls
– boolean, whether to show rays or not;generator_color
– a color for generators;label_color
– a color for labels;point_color
– a color for lattice points;ray_color
– a color for rays, a list of colors (one for each ray), or the string “rainbow”;wall_color
– a color for walls, a list of colors (one for each wall), or the string “rainbow”;wall_alpha
– a number between 0 and 1, the alpha-value for walls (determining their transparency);point_size
– integer; the size of lattice pointsray_thickness
– integer; the thickness of raysgenerator_thickness
– integer; the thickness of generatorsfont_size
– integer; the size of font used for labelsray_label
– string or list of strings used for ray labels; useNone
to hide labelswall_label
– string or list of strings used for wall labels; useNone
to hide labelsradius
– a positive number, the radius of the cut-off region for “round” modexmin
,xmax
,ymin
,ymax
,zmin
,zmax
– numbers determining the cut-off region for “box” mode. Note that you cannot exclude the origin - if you try to do so, bounds will be automatically expanded to include it.lattice_filter
– a callable, taking as an argument a lattice point and returningTrue
if this point should be included on the plot (useful, e.g. for plotting sublattices)wall_zorder
,ray_zorder
,generator_zorder
,point_zorder
,label_zorder
– integers, z-orders for different classes of objects. By default all values are negative, so that you can add other graphic objects on top of a toric plot. You may need to adjust these parameters if you want to put a toric plot on top of something else or if you want to overlap several toric plots.
You can see the current default value of any options by typing, e.g.
sage: toric_plotter.options("show_rays") True
>>> from sage.all import * >>> toric_plotter.options("show_rays") True
toric_plotter.options("show_rays")
If the default value is
None
, it means that the actual default is determined later based on the known options. Note, that not all options can be determined in such a way, so you should not set options toNone
unless it was its original state. (You can always revert to this “original state” usingreset_options()
.)EXAMPLES:
The following line will make all subsequent toric plotting commands to draw “rainbows” from walls:
sage: toric_plotter.options(wall_color='rainbow')
>>> from sage.all import * >>> toric_plotter.options(wall_color='rainbow')
toric_plotter.options(wall_color='rainbow')
If you prefer a less colorful output (e.g. if you need black-and-white illustrations for a paper), you can use something like this:
sage: toric_plotter.options(wall_color='grey')
>>> from sage.all import * >>> toric_plotter.options(wall_color='grey')
toric_plotter.options(wall_color='grey')
- sage.geometry.toric_plotter.reset_options()[source]¶
Reset options for plots of toric geometry objects.
OUTPUT: none
EXAMPLES:
sage: toric_plotter.options("show_rays") True sage: toric_plotter.options(show_rays=False) sage: toric_plotter.options("show_rays") False
>>> from sage.all import * >>> toric_plotter.options("show_rays") True >>> toric_plotter.options(show_rays=False) >>> toric_plotter.options("show_rays") False
toric_plotter.options("show_rays") toric_plotter.options(show_rays=False) toric_plotter.options("show_rays")
Now all toric plots will not show rays, unless explicitly requested. If you want to go back to “default defaults”, use this method:
sage: toric_plotter.reset_options() sage: toric_plotter.options("show_rays") True
>>> from sage.all import * >>> toric_plotter.reset_options() >>> toric_plotter.options("show_rays") True
toric_plotter.reset_options() toric_plotter.options("show_rays")
- sage.geometry.toric_plotter.sector(ray1, ray2, **extra_options)[source]¶
Plot a sector between
ray1
andray2
centered at the origin.Note
This function was intended for plotting strictly convex cones, so it plots the smaller sector between
ray1
andray2
and, therefore, they cannot be opposite. If you do want to use this function for bigger regions, split them into several parts.Note
As of version 4.6 Sage does not have a graphic primitive for sectors in 3-dimensional space, so this function will actually approximate them using polygons (the number of vertices used depends on the angle between rays).
INPUT:
ray1
,ray2
– rays in 2- or 3-dimensional space of the same lengthextra_options
– dictionary of options that should be passed to lower level plotting functions
OUTPUT: a plot
EXAMPLES:
sage: from sage.geometry.toric_plotter import sector sage: sector((1,0), (0,1)) # needs sage.symbolic Graphics object consisting of 1 graphics primitive sage: sector((3,2,1), (1,2,3)) # needs sage.plot Graphics3d Object
>>> from sage.all import * >>> from sage.geometry.toric_plotter import sector >>> sector((Integer(1),Integer(0)), (Integer(0),Integer(1))) # needs sage.symbolic Graphics object consisting of 1 graphics primitive >>> sector((Integer(3),Integer(2),Integer(1)), (Integer(1),Integer(2),Integer(3))) # needs sage.plot Graphics3d Object
from sage.geometry.toric_plotter import sector sector((1,0), (0,1)) # needs sage.symbolic sector((3,2,1), (1,2,3)) # needs sage.plot