本文整理汇总了Python中sage.misc.decorators.options.get函数的典型用法代码示例。如果您正苦于以下问题:Python get函数的具体用法?Python get怎么用?Python get使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: _render_on_subplot
def _render_on_subplot(self, subplot):
"""
Render this arrow in a subplot. This is the key function that
defines how this arrow graphics primitive is rendered in
matplotlib's library.
EXAMPLES:
This function implicitly ends up rendering this arrow on
a matplotlib subplot::
sage: arrow((0,1), (2,-1))
"""
options = self.options()
head = options.pop('head')
if head == 0: style = '<|-'
elif head == 1: style = '-|>'
elif head == 2: style = '<|-|>'
else: raise KeyError('head parameter must be one of 0 (start), 1 (end) or 2 (both).')
width = float(options['width'])
arrowshorten_end = float(options.get('arrowshorten',0))/2.0+width*2
arrowsize = float(options.get('arrowsize',5))
head_width=arrowsize
head_length=arrowsize*2.0
color = to_mpl_color(options['rgbcolor'])
from matplotlib.patches import FancyArrowPatch
p = FancyArrowPatch((self.xtail, self.ytail), (self.xhead, self.yhead),
lw=width, arrowstyle='%s,head_width=%s,head_length=%s'%(style,head_width, head_length),
shrinkA=arrowshorten_end, shrinkB=arrowshorten_end,
fc=color, ec=color, linestyle=options['linestyle'])
p.set_zorder(options['zorder'])
p.set_label(options['legend_label'])
subplot.add_patch(p)
return p
开发者ID:jwbober,项目名称:sagelib,代码行数:34,代码来源:arrow.py
示例2: _render_on_subplot
def _render_on_subplot(self, subplot):
"""
Render this arrow in a subplot. This is the key function that
defines how this arrow graphics primitive is rendered in
matplotlib's library.
EXAMPLES:
This function implicitly ends up rendering this arrow on
a matplotlib subplot::
sage: arrow((0,1), (2,-1))
TESTS:
The length of the ends (shrinkA and shrinkB) should not depend
on the width of the arrow, because Matplotlib already takes
this into account. See :trac:`12836`::
sage: fig = Graphics().matplotlib()
sage: sp = fig.add_subplot(1,1,1)
sage: a = arrow((0,0), (1,1))
sage: b = arrow((0,0), (1,1), width=20)
sage: p1 = a[0]._render_on_subplot(sp)
sage: p2 = b[0]._render_on_subplot(sp)
sage: p1.shrinkA == p2.shrinkA
True
sage: p1.shrinkB == p2.shrinkB
True
"""
options = self.options()
head = options.pop('head')
if head == 0: style = '<|-'
elif head == 1: style = '-|>'
elif head == 2: style = '<|-|>'
else: raise KeyError('head parameter must be one of 0 (start), 1 (end) or 2 (both).')
width = float(options['width'])
arrowshorten_end = float(options.get('arrowshorten',0))/2.0
arrowsize = float(options.get('arrowsize',5))
head_width=arrowsize
head_length=arrowsize*2.0
color = to_mpl_color(options['rgbcolor'])
from matplotlib.patches import FancyArrowPatch
p = FancyArrowPatch((self.xtail, self.ytail), (self.xhead, self.yhead),
lw=width, arrowstyle='%s,head_width=%s,head_length=%s'%(style,head_width, head_length),
shrinkA=arrowshorten_end, shrinkB=arrowshorten_end,
fc=color, ec=color, linestyle=options['linestyle'])
p.set_zorder(options['zorder'])
p.set_label(options['legend_label'])
subplot.add_patch(p)
return p
开发者ID:pombredanne,项目名称:sage-1,代码行数:52,代码来源:arrow.py
示例3: _render_on_subplot
def _render_on_subplot(self, subplot):
"""
Render this arrow in a subplot. This is the key function that
defines how this arrow graphics primitive is rendered in
matplotlib's library.
EXAMPLES::
This function implicitly ends up rendering this arrow on a matplotlib subplot:
sage: arrow(path=[[(0,1), (2,-1), (4,5)]])
"""
from sage.plot.misc import get_matplotlib_linestyle
options = self.options()
width = float(options['width'])
head = options.pop('head')
if head == 0: style = '<|-'
elif head == 1: style = '-|>'
elif head == 2: style = '<|-|>'
else: raise KeyError('head parameter must be one of 0 (start), 1 (end) or 2 (both).')
arrowsize = float(options.get('arrowsize',5))
head_width=arrowsize
head_length=arrowsize*2.0
color = to_mpl_color(options['rgbcolor'])
from matplotlib.patches import FancyArrowPatch
from matplotlib.path import Path
bpath = Path(self.vertices, self.codes)
p = FancyArrowPatch(path=bpath,
lw=width, arrowstyle='%s,head_width=%s,head_length=%s'%(style,head_width, head_length),
fc=color, ec=color)
p.set_linestyle(get_matplotlib_linestyle(options['linestyle'],return_type='long'))
p.set_zorder(options['zorder'])
p.set_label(options['legend_label'])
subplot.add_patch(p)
return p
开发者ID:CETHop,项目名称:sage,代码行数:35,代码来源:arrow.py
示例4: _render_on_subplot
def _render_on_subplot(self, subplot):
"""
Render this arrow in a subplot. This is the key function that
defines how this arrow graphics primitive is rendered in
matplotlib's library.
EXAMPLES::
This function implicitly ends up rendering this arrow on a matplotlib subplot:
sage: arrow(path=[[(0,1), (2,-1), (4,5)]])
Graphics object consisting of 1 graphics primitive
"""
from sage.plot.misc import get_matplotlib_linestyle
options = self.options()
width = float(options["width"])
head = options.pop("head")
if head == 0:
style = "<|-"
elif head == 1:
style = "-|>"
elif head == 2:
style = "<|-|>"
else:
raise KeyError("head parameter must be one of 0 (start), 1 (end) or 2 (both).")
arrowsize = float(options.get("arrowsize", 5))
head_width = arrowsize
head_length = arrowsize * 2.0
color = to_mpl_color(options["rgbcolor"])
from matplotlib.patches import FancyArrowPatch
from matplotlib.path import Path
bpath = Path(self.vertices, self.codes)
p = FancyArrowPatch(
path=bpath,
lw=width,
arrowstyle="%s,head_width=%s,head_length=%s" % (style, head_width, head_length),
fc=color,
ec=color,
)
p.set_linestyle(get_matplotlib_linestyle(options["linestyle"], return_type="long"))
p.set_zorder(options["zorder"])
p.set_label(options["legend_label"])
subplot.add_patch(p)
return p
开发者ID:sharmaeklavya2,项目名称:sage,代码行数:45,代码来源:arrow.py
示例5: _render_on_subplot
def _render_on_subplot(self, subplot):
"""
TESTS:
A somewhat random plot, but fun to look at::
sage: x,y = var('x,y')
sage: contour_plot(x^2-y^3+10*sin(x*y), (x, -4, 4), (y, -4, 4),plot_points=121,cmap='hsv')
"""
from sage.rings.integer import Integer
options = self.options()
fill = options['fill']
contours = options['contours']
if options.has_key('cmap'):
cmap = get_cmap(options['cmap'])
elif fill or contours is None:
cmap = get_cmap('gray')
else:
if isinstance(contours, (int, Integer)):
cmap = get_cmap([(i,i,i) for i in xsrange(0,1,1/contours)])
else:
l = Integer(len(contours))
cmap = get_cmap([(i,i,i) for i in xsrange(0,1,1/l)])
x0,x1 = float(self.xrange[0]), float(self.xrange[1])
y0,y1 = float(self.yrange[0]), float(self.yrange[1])
if isinstance(contours, (int, Integer)):
contours = int(contours)
CSF=None
if fill:
if contours is None:
CSF=subplot.contourf(self.xy_data_array, cmap=cmap, extent=(x0,x1,y0,y1), label=options['legend_label'])
else:
CSF=subplot.contourf(self.xy_data_array, contours, cmap=cmap, extent=(x0,x1,y0,y1),extend='both', label=options['legend_label'])
linewidths = options.get('linewidths',None)
if isinstance(linewidths, (int, Integer)):
linewidths = int(linewidths)
elif isinstance(linewidths, (list, tuple)):
linewidths = tuple(int(x) for x in linewidths)
linestyles = options.get('linestyles',None)
if contours is None:
CS = subplot.contour(self.xy_data_array, cmap=cmap, extent=(x0,x1,y0,y1),
linewidths=linewidths, linestyles=linestyles, label=options['legend_label'])
else:
CS = subplot.contour(self.xy_data_array, contours, cmap=cmap, extent=(x0,x1,y0,y1),
linewidths=linewidths, linestyles=linestyles, label=options['legend_label'])
if options.get('labels', False):
label_options = options['label_options']
label_options['fontsize'] = int(label_options['fontsize'])
if fill and label_options is None:
label_options['inline']=False
subplot.clabel(CS, **label_options)
if options.get('colorbar', False):
colorbar_options = options['colorbar_options']
from matplotlib import colorbar
cax,kwds=colorbar.make_axes_gridspec(subplot,**colorbar_options)
if CSF is None:
cb=colorbar.Colorbar(cax,CS, **kwds)
else:
cb=colorbar.Colorbar(cax,CSF, **kwds)
cb.add_lines(CS)
开发者ID:jwbober,项目名称:sagelib,代码行数:64,代码来源:contour_plot.py
示例6: _render_on_subplot
def _render_on_subplot(self, subplot):
r"""
Render this arrow in a subplot. This is the key function that
defines how this arrow graphics primitive is rendered in
matplotlib's library.
EXAMPLES:
This function implicitly ends up rendering this arrow on
a matplotlib subplot::
sage: arrow((0,1), (2,-1))
TESTS:
The length of the ends (shrinkA and shrinkB) should not depend
on the width of the arrow, because Matplotlib already takes
this into account. See :trac:`12836`::
sage: fig = Graphics().matplotlib()
sage: sp = fig.add_subplot(1,1,1)
sage: a = arrow((0,0), (1,1))
sage: b = arrow((0,0), (1,1), width=20)
sage: p1 = a[0]._render_on_subplot(sp)
sage: p2 = b[0]._render_on_subplot(sp)
sage: p1.shrinkA == p2.shrinkA
True
sage: p1.shrinkB == p2.shrinkB
True
Dashed arrows should have solid arrowheads,
:trac:`12852`. This test saves the plot of a dashed arrow to
an EPS file. Within the EPS file, ``stroke`` will be called
twice: once to draw the line, and again to draw the
arrowhead. We check that both calls do not occur while the
dashed line style is enabled::
sage: a = arrow((0,0), (1,1), linestyle='dashed')
sage: filename = tmp_filename(ext='.eps')
sage: a.save(filename=filename)
sage: with open(filename, 'r') as f:
....: contents = f.read().replace('\n', ' ')
sage: two_stroke_pattern = r'setdash.*stroke.*stroke.*setdash'
sage: import re
sage: two_stroke_re = re.compile(two_stroke_pattern)
sage: two_stroke_re.search(contents) is None
True
"""
options = self.options()
head = options.pop('head')
if head == 0: style = '<|-'
elif head == 1: style = '-|>'
elif head == 2: style = '<|-|>'
else: raise KeyError('head parameter must be one of 0 (start), 1 (end) or 2 (both).')
width = float(options['width'])
arrowshorten_end = float(options.get('arrowshorten',0))/2.0
arrowsize = float(options.get('arrowsize',5))
head_width=arrowsize
head_length=arrowsize*2.0
color = to_mpl_color(options['rgbcolor'])
from matplotlib.patches import FancyArrowPatch
p = FancyArrowPatch((self.xtail, self.ytail), (self.xhead, self.yhead),
lw=width, arrowstyle='%s,head_width=%s,head_length=%s'%(style,head_width, head_length),
shrinkA=arrowshorten_end, shrinkB=arrowshorten_end,
fc=color, ec=color, linestyle=options['linestyle'])
p.set_zorder(options['zorder'])
p.set_label(options['legend_label'])
if options['linestyle']!='solid':
# The next few lines work around a design issue in matplotlib. Currently, the specified
# linestyle is used to draw both the path and the arrowhead. If linestyle is 'dashed', this
# looks really odd. This code is from Jae-Joon Lee in response to a post to the matplotlib mailing
# list. See http://sourceforge.net/mailarchive/forum.php?thread_name=CAG%3DuJ%2Bnw2dE05P9TOXTz_zp-mGP3cY801vMH7yt6vgP9_WzU8w%40mail.gmail.com&forum_name=matplotlib-users
import matplotlib.patheffects as pe
class CheckNthSubPath(object):
def __init__(self, patch, n):
"""
creates an callable object that returns True if the provided
path is the n-th path from the patch.
"""
self._patch = patch
self._n = n
def get_paths(self, renderer):
self._patch.set_dpi_cor(renderer.points_to_pixels(1.))
paths, fillables = self._patch.get_path_in_displaycoord()
return paths
def __call__(self, renderer, gc, tpath, affine, rgbFace):
path = self.get_paths(renderer)[self._n]
vert1, code1 = path.vertices, path.codes
import numpy as np
if np.all(vert1 == tpath.vertices) and np.all(code1 == tpath.codes):
return True
else:
return False
#.........这里部分代码省略.........
开发者ID:felix-salfelder,项目名称:sage,代码行数:101,代码来源:arrow.py
示例7: disk
def disk(point, radius, angle, **options):
r"""
A disk (that is, a sector or wedge of a circle) with center
at a point = `(x,y)` (or `(x,y,z)` and parallel to the
`xy`-plane) with radius = `r` spanning (in radians)
angle=`(rad1, rad2)`.
Type ``disk.options`` to see all options.
EXAMPLES:
Make some dangerous disks::
sage: bl = disk((0.0,0.0), 1, (pi, 3*pi/2), color='yellow')
sage: tr = disk((0.0,0.0), 1, (0, pi/2), color='yellow')
sage: tl = disk((0.0,0.0), 1, (pi/2, pi), color='black')
sage: br = disk((0.0,0.0), 1, (3*pi/2, 2*pi), color='black')
sage: P = tl+tr+bl+br
sage: P.show(xmin=-2,xmax=2,ymin=-2,ymax=2)
The default aspect ratio is 1.0::
sage: disk((0.0,0.0), 1, (pi, 3*pi/2)).aspect_ratio()
1.0
Another example of a disk::
sage: bl = disk((0.0,0.0), 1, (pi, 3*pi/2), rgbcolor=(1,1,0))
sage: bl.show(figsize=[5,5])
Note that since ``thickness`` defaults to zero, it is best to change
that option when using ``fill=False``::
sage: disk((2,3), 1, (pi/4,pi/3), hue=.8, alpha=.3, fill=False, thickness=2)
The previous two examples also illustrate using ``hue`` and ``rgbcolor``
as ways of specifying the color of the graphic.
We can also use this command to plot three-dimensional disks parallel
to the `xy`-plane::
sage: d = disk((1,1,3), 1, (pi,3*pi/2), rgbcolor=(1,0,0))
sage: d
sage: type(d)
<type 'sage.plot.plot3d.index_face_set.IndexFaceSet'>
Extra options will get passed on to ``show()``, as long as they are valid::
sage: disk((0, 0), 5, (0, pi/2), xmin=0, xmax=5, ymin=0, ymax=5, figsize=(2,2), rgbcolor=(1, 0, 1))
sage: disk((0, 0), 5, (0, pi/2), rgbcolor=(1, 0, 1)).show(xmin=0, xmax=5, ymin=0, ymax=5, figsize=(2,2)) # These are equivalent
TESTS:
Testing that legend labels work right::
sage: disk((2,4), 3, (pi/8, pi/4), hue=1, legend_label='disk', legend_color='blue')
We cannot currently plot disks in more than three dimensions::
sage: d = disk((1,1,1,1), 1, (0,pi))
Traceback (most recent call last):
...
ValueError: The center point of a plotted disk should have two or three coordinates.
"""
from sage.plot.all import Graphics
g = Graphics()
# Reset aspect_ratio to 'automatic' in case scale is 'semilog[xy]'.
# Otherwise matplotlib complains.
scale = options.get('scale', None)
if isinstance(scale, (list, tuple)):
scale = scale[0]
if scale == 'semilogy' or scale == 'semilogx':
options['aspect_ratio'] = 'automatic'
g._set_extra_kwds(Graphics._extract_kwds_for_show(options))
g.add_primitive(Disk(point, radius, angle, options))
if options['legend_label']:
g.legend(True)
g._legend_colors = [options['legend_color']]
if len(point)==2:
return g
elif len(point)==3:
return g[0].plot3d(z=point[2])
else:
raise ValueError, 'The center point of a plotted disk should have two or three coordinates.'
开发者ID:CETHop,项目名称:sage,代码行数:86,代码来源:disk.py
示例8: region_plot
def region_plot(f, xrange, yrange, plot_points, incol, outcol, bordercol, borderstyle, borderwidth,**options):
r"""
``region_plot`` takes a boolean function of two variables, `f(x,y)`
and plots the region where f is True over the specified
``xrange`` and ``yrange`` as demonstrated below.
``region_plot(f, (xmin, xmax), (ymin, ymax), ...)``
INPUT:
- ``f`` -- a boolean function of two variables
- ``(xmin, xmax)`` -- 2-tuple, the range of ``x`` values OR 3-tuple
``(x,xmin,xmax)``
- ``(ymin, ymax)`` -- 2-tuple, the range of ``y`` values OR 3-tuple
``(y,ymin,ymax)``
- ``plot_points`` -- integer (default: 100); number of points to plot
in each direction of the grid
- ``incol`` -- a color (default: ``'blue'``), the color inside the region
- ``outcol`` -- a color (default: ``'white'``), the color of the outside
of the region
If any of these options are specified, the border will be shown as indicated,
otherwise it is only implicit (with color ``incol``) as the border of the
inside of the region.
- ``bordercol`` -- a color (default: ``None``), the color of the border
(``'black'`` if ``borderwidth`` or ``borderstyle`` is specified but not ``bordercol``)
- ``borderstyle`` -- string (default: 'solid'), one of ``'solid'``,
``'dashed'``, ``'dotted'``, ``'dashdot'``, respectively ``'-'``,
``'--'``, ``':'``, ``'-.'``.
- ``borderwidth`` -- integer (default: None), the width of the border in pixels
- ``legend_label`` -- the label for this item in the legend
- ``base`` - (default: 10) the base of the logarithm if
a logarithmic scale is set. This must be greater than 1. The base
can be also given as a list or tuple ``(basex, basey)``.
``basex`` sets the base of the logarithm along the horizontal
axis and ``basey`` sets the base along the vertical axis.
- ``scale`` -- (default: ``"linear"``) string. The scale of the axes.
Possible values are ``"linear"``, ``"loglog"``, ``"semilogx"``,
``"semilogy"``.
The scale can be also be given as single argument that is a list
or tuple ``(scale, base)`` or ``(scale, basex, basey)``.
The ``"loglog"`` scale sets both the horizontal and vertical axes to
logarithmic scale. The ``"semilogx"`` scale sets the horizontal axis
to logarithmic scale. The ``"semilogy"`` scale sets the vertical axis
to logarithmic scale. The ``"linear"`` scale is the default value
when :class:`~sage.plot.graphics.Graphics` is initialized.
EXAMPLES:
Here we plot a simple function of two variables::
sage: x,y = var('x,y')
sage: region_plot(cos(x^2+y^2) <= 0, (x, -3, 3), (y, -3, 3))
Here we play with the colors::
sage: region_plot(x^2+y^3 < 2, (x, -2, 2), (y, -2, 2), incol='lightblue', bordercol='gray')
An even more complicated plot, with dashed borders::
sage: region_plot(sin(x)*sin(y) >= 1/4, (x,-10,10), (y,-10,10), incol='yellow', bordercol='black', borderstyle='dashed', plot_points=250)
A disk centered at the origin::
sage: region_plot(x^2+y^2<1, (x,-1,1), (y,-1,1))
A plot with more than one condition (all conditions must be true for the statement to be true)::
sage: region_plot([x^2+y^2<1, x<y], (x,-2,2), (y,-2,2))
Since it doesn't look very good, let's increase ``plot_points``::
sage: region_plot([x^2+y^2<1, x<y], (x,-2,2), (y,-2,2), plot_points=400)
To get plots where only one condition needs to be true, use a function.
Using lambda functions, we definitely need the extra ``plot_points``::
sage: region_plot(lambda x,y: x^2+y^2<1 or x<y, (x,-2,2), (y,-2,2), plot_points=400)
The first quadrant of the unit circle::
sage: region_plot([y>0, x>0, x^2+y^2<1], (x,-1.1, 1.1), (y,-1.1, 1.1), plot_points = 400)
Here is another plot, with a huge border::
sage: region_plot(x*(x-1)*(x+1)+y^2<0, (x, -3, 2), (y, -3, 3), incol='lightblue', bordercol='gray', borderwidth=10, plot_points=50)
#.........这里部分代码省略.........
开发者ID:CETHop,项目名称:sage,代码行数:101,代码来源:contour_plot.py
示例9: contour_plot
def contour_plot(f, xrange, yrange, **options):
r"""
``contour_plot`` takes a function of two variables, `f(x,y)`
and plots contour lines of the function over the specified
``xrange`` and ``yrange`` as demonstrated below.
``contour_plot(f, (xmin, xmax), (ymin, ymax), ...)``
INPUT:
- ``f`` -- a function of two variables
- ``(xmin, xmax)`` -- 2-tuple, the range of ``x`` values OR 3-tuple
``(x,xmin,xmax)``
- ``(ymin, ymax)`` -- 2-tuple, the range of ``y`` values OR 3-tuple
``(y,ymin,ymax)``
The following inputs must all be passed in as named parameters:
- ``plot_points`` -- integer (default: 100); number of points to plot
in each direction of the grid. For old computers, 25 is fine, but
should not be used to verify specific intersection points.
- ``fill`` -- bool (default: ``True``), whether to color in the area
between contour lines
- ``cmap`` -- a colormap (default: ``'gray'``), the name of
a predefined colormap, a list of colors or an instance of a matplotlib
Colormap. Type: ``import matplotlib.cm; matplotlib.cm.datad.keys()``
for available colormap names.
- ``contours`` -- integer or list of numbers (default: ``None``):
If a list of numbers is given, then this specifies the contour levels
to use. If an integer is given, then this many contour lines are
used, but the exact levels are determined automatically. If ``None``
is passed (or the option is not given), then the number of contour
lines is determined automatically, and is usually about 5.
- ``linewidths`` -- integer or list of integer (default: None), if
a single integer all levels will be of the width given,
otherwise the levels will be plotted with the width in the order
given. If the list is shorter than the number of contours, then
the widths will be repeated cyclically.
- ``linestyles`` -- string or list of strings (default: None), the
style of the lines to be plotted, one of: ``"solid"``, ``"dashed"``,
``"dashdot"``, ``"dotted"``, respectively ``"-"``, ``"--"``,
``"-."``, ``":"``. If the list is shorter than the number of
contours, then the styles will be repeated cyclically.
- ``labels`` -- boolean (default: False) Show level labels or not.
The following options are to adjust the style and placement of
labels, they have no effect if no labels are shown.
- ``label_fontsize`` -- integer (default: 9), the font size of the labels.
- ``label_colors`` -- string or sequence of colors (default:
None) If a string, gives the name of a single color with which
to draw all labels. If a sequence, gives the colors of the
labels. A color is a string giving the name of one or a
3-tuple of floats.
- ``label_inline`` -- boolean (default: False if fill is True,
otherwise True), controls whether the underlying contour is
removed or not.
- ``label_inline_spacing`` -- integer (default: 3), When inline,
this is the amount of contour that is removed from each side,
in pixels.
- ``label_fmt`` -- a format string (default: "%1.2f"), this is
used to get the label text from the level. This can also be a
dictionary with the contour levels as keys and corresponding
text string labels as values. It can also be any callable which
returns a string when called with a numeric contour level.
- ``colorbar`` -- boolean (default: False) Show a colorbar or not.
The following options are to adjust the style and placement of
colorbars. They have no effect if a colorbar is not shown.
- ``colorbar_orientation`` -- string (default: 'vertical'),
controls placement of the colorbar, can be either 'vertical'
or 'horizontal'
- ``colorbar_format`` -- a format string, this is used to format
the colorbar labels.
- ``colorbar_spacing`` -- string (default: 'proportional'). If
'proportional', make the contour divisions proportional to
values. If 'uniform', space the colorbar divisions uniformly,
without regard for numeric values.
- ``legend_label`` -- the label for this item in the legend
- ``region`` - (default: None) If region is given, it must be a function
of two variables. Only segments of the surface where region(x,y) returns a
number >0 will be included in the plot.
#.........这里部分代码省略.........
开发者ID:CETHop,项目名称:sage,代码行数:101,代码来源:contour_plot.py
示例10: circle
def circle(center, radius, **options):
"""
Return a circle at a point center = `(x,y)` (or `(x,y,z)` and
parallel to the `xy`-plane) with radius = `r`. Type
``circle.options`` to see all options.
OPTIONS:
- ``alpha`` - default: 1
- ``fill`` - default: False
- ``thickness`` - default: 1
- ``linestyle`` - default: 'solid' (2D plotting only)
- ``edgecolor`` - default: 'blue' (2D plotting only)
- ``facecolor`` - default: 'blue' (2D plotting only, useful only
if ``fill=True``)
- ``rgbcolor`` - 2D or 3D plotting. This option overrides
``edgecolor`` and ``facecolor`` for 2D plotting.
- ``legend_label`` - the label for this item in the legend
EXAMPLES:
The default color is blue, but this is easy to change::
sage: c = circle((1,1), 1)
sage: c
::
sage: c = circle((1,1), 1, rgbcolor=(1,0,0))
sage: c
We can also use this command to plot three-dimensional circles parallel
to the `xy`-plane::
sage: c = circle((1,1,3), 1, rgbcolor=(1,0,0))
sage: c
sage: type(c)
<class 'sage.plot.plot3d.base.TransformGroup'>
To correct the aspect ratio of certain graphics, it is necessary
to show with a ``figsize`` of square dimensions::
sage: c.show(figsize=[5,5],xmin=-1,xmax=3,ymin=-1,ymax=3)
Here we make a more complicated plot, with many circles of different colors::
sage: g = Graphics()
sage: step=6; ocur=1/5; paths=16;
sage: PI = math.pi # numerical for speed -- fine for graphics
sage: for r in range(1,paths+1):
... for x,y in [((r+ocur)*math.cos(n), (r+ocur)*math.sin(n)) for n in srange(0, 2*PI+PI/step, PI/step)]:
... g += circle((x,y), ocur, rgbcolor=hue(r/paths))
... rnext = (r+1)^2
... ocur = (rnext-r)-ocur
...
sage: g.show(xmin=-(paths+1)^2, xmax=(paths+1)^2, ymin=-(paths+1)^2, ymax=(paths+1)^2, figsize=[6,6])
Note that the ``rgbcolor`` option overrides the other coloring options.
This produces red fill in a blue circle::
sage: circle((2,3), 1, fill=True, edgecolor='blue')
This produces an all-green filled circle::
sage: circle((2,3), 1, fill=True, edgecolor='blue', rgbcolor='green')
The option ``hue`` overrides *all* other options, so be careful with its use.
This produces a purplish filled circle::
sage: circle((2,3), 1, fill=True, edgecolor='blue', rgbcolor='green', hue=.8)
And a circle with a legend::
sage: circle((4,5), 1, rgbcolor='yellow', fill=True, legend_label='the sun').show(xmin=0, ymin=0)
Extra options will get passed on to show(), as long as they are valid::
sage: circle((0, 0), 2, figsize=[10,10]) # That circle is huge!
::
sage: circle((0, 0), 2).show(figsize=[10,10]) # These are equivalent
TESTS:
We cannot currently plot circles in more than three dimensions::
sage: circle((1,1,1,1), 1, rgbcolor=(1,0,0))
Traceback (most recent call last):
...
ValueError: The center of a plotted circle should have two or three coordinates.
The default aspect ratio for a circle is 1.0::
#.........这里部分代码省略.........
开发者ID:pombredanne,项目名称:sage-1,代码行数:101,代码来源:circle.py
示例11: _render_on_subplot
def _render_on_subplot(self, subplot):
"""
TESTS::
sage: matrix_plot(random_matrix(RDF, 50), cmap='jet')
Graphics object consisting of 1 graphics primitive
"""
options = self.options()
cmap = get_cmap(options.pop('cmap',None))
origin=options['origin']
norm=options['norm']
if norm=='value':
import matplotlib
norm=matplotlib.colors.NoNorm()
if options['subdivisions']:
subdiv_options=options['subdivision_options']
if isinstance(subdiv_options['boundaries'], (list, tuple)):
rowsub,colsub=subdiv_options['boundaries']
else:
rowsub=subdiv_options['boundaries']
colsub=subdiv_options['boundaries']
if isinstance(subdiv_options['style'], (list, tuple)):
rowstyle,colstyle=subdiv_options['style']
else:
rowstyle=subdiv_options['style']
colstyle=subdiv_options['style']
if rowstyle is None:
rowstyle=dict()
if colstyle is None:
colstyle=dict()
# Make line objects for subdivisions
from line import line2d
lim=self.get_minmax_data()
# First draw horizontal lines representing row subdivisions
for y in rowsub:
l=line2d([(lim['xmin'],y-0.5), (lim['xmax'],y-0.5)], **rowstyle)[0]
l._render_on_subplot(subplot)
for x in colsub:
l=line2d([(x-0.5, lim['ymin']), (x-0.5, lim['ymax'])], **colstyle)[0]
l._render_on_subplot(subplot)
if hasattr(self.xy_data_array, 'tocoo'):
# Sparse matrix -- use spy
opts=options.copy()
for opt in ['vmin', 'vmax', 'norm', 'origin','subdivisions','subdivision_options',
'colorbar','colorbar_options']:
del opts[opt]
if origin=='lower':
subplot.spy(self.xy_data_array.tocsr()[::-1], **opts)
else:
subplot.spy(self.xy_data_array, **opts)
else:
opts = dict(cmap=cmap, interpolation='nearest', aspect='equal',
norm=norm, vmin=options['vmin'], vmax=options['vmax'],
origin=origin,zorder=options.get('zorder',None))
image=subplot.imshow(self.xy_data_array, **opts)
if options.get('colorbar', False):
colorbar_options = options['colorbar_options']
from matplotlib import colorbar
cax,kwds=colorbar.make_axes_gridspec(subplot,**colorbar_options)
cb=colorbar.Colorbar(cax,image, **kwds)
if origin=='upper':
subplot.xaxis.tick_top()
elif origin=='lower':
subplot.xaxis.tick_bottom()
subplot.xaxis.set_ticks_position('both') #only tick marks, not tick labels
开发者ID:BlairArchibald,项目名称:sage,代码行数:72,代码来源:matrix_plot.py
示例12: polygon2d
def polygon2d(points, **options):
r"""
Returns a 2-dimensional polygon defined by ``points``.
Type ``polygon2d.options`` for a dictionary of the default
options for polygons. You can change this to change the
defaults for all future polygons. Use ``polygon2d.reset()``
to reset to the default options.
EXAMPLES:
We create a purple-ish polygon::
sage: polygon2d([[1,2], [5,6], [5,0]], rgbcolor=(1,0,1))
By default, polygons are filled in, but we can make them
without a fill as well::
sage: polygon2d([[1,2], [5,6], [5,0]], fill=False)
In either case, the thickness of the border can be controlled::
sage: polygon2d([[1,2], [5,6], [5,0]], fill=False, thickness=4, color='orange')
Some modern art -- a random polygon, with legend::
sage: v = [(randrange(-5,5), randrange(-5,5)) for _ in range(10)]
sage: polygon2d(v, legend_label='some form')
A purple hexagon::
sage: L = [[cos(pi*i/3),sin(pi*i/3)] for i in range(6)]
sage: polygon2d(L, rgbcolor=(1,0,1))
A green deltoid::
sage: L = [[-1+cos(pi*i/100)*(1+cos(pi*i/100)),2*sin(pi*i/100)*(1-cos(pi*i/100))] for i in range(200)]
sage: polygon2d(L, rgbcolor=(1/8,3/4,1/2))
A blue hypotrochoid::
sage: L = [[6*cos(pi*i/100)+5*cos((6/2)*pi*i/100),6*sin(pi*i/100)-5*sin((6/2)*pi*i/100)] for i in range(200)]
sage: polygon2d(L, rgbcolor=(1/8,1/4,1/2))
Another one::
sage: n = 4; 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: polygon2d(L, rgbcolor=(1/8,1/4,3/4))
A purple epicycloid::
sage: m = 9; b = 1
sage: L = [[m*cos(pi*i/100)+b*cos((m/b)*pi*i/100),m*sin(pi*i/100)-b*sin((m/b)*pi*i/100)] for i in range(200)]
sage: polygon2d(L, rgbcolor=(7/8,1/4,3/4))
A brown astroid::
sage: L = [[cos(pi*i/100)^3,sin(pi*i/100)^3] for i in range(200)]
sage: polygon2d(L, rgbcolor=(3/4,1/4,1/4))
And, my favorite, a greenish blob::
sage: L = [[cos(pi*i/100)*(1+cos(pi*i/50)), sin(pi*i/100)*(1+sin(pi*i/50))] for i in range(200)]
sage: polygon2d(L, rgbcolor=(1/8, 3/4, 1/2))
This one is for my wife::
sage: L = [[sin(pi*i/100)+sin(pi*i/50),-(1+cos(pi*i/100)+cos(pi*i/50))] for i in range(-100,100)]
sage: polygon2d(L, rgbcolor=(1,1/4,1/2))
One can do the same one with a colored legend label::
sage: polygon2d(L, color='red', legend_label='For you!', legend_color='red')
Polygons have a default aspect ratio of 1.0::
sage: polygon2d([[1,2], [5,6], [5,0]]).aspect_ratio()
1.0
AUTHORS:
- David Joyner (2006-04-14): the long list of examples above.
"""
from sage.plot.plot import xydata_from_point_list
from sage.plot.all import Graphics
if options["thickness"] is None: # If the user did not specify thickness
if options["fill"]: # If the user chose fill
options["thickness"] = 0
else:
options["thickness"] = 1
xdata, ydata = xydata_from_point_list(points)
g = Graphics()
# Reset aspect_ratio to 'automatic' in case scale is 'semilog[xy]'.
# Otherwise matplotlib complains.
scale = options.get('scale', None)
if isinstance(scale, (list, tuple)):
scale = scale[0]
#.........这里部分代码省略.........
开发者ID:CETHop,项目名称:sage,代码行数:101,代码来源:polygon.py
示例13: _render_on_subplot
def _render_on_subplot(self, subplot):
"""
TESTS::
sage: matrix_plot(random_matrix(RDF, 50), cmap='jet')
"""
options = self.options()
cmap = get_cmap(options.pop("cmap", None))
origin = options["origin"]
norm = options["norm"]
if norm == "value":
import matplotlib
norm = matplotlib.colors.NoNorm()
if options["subdivisions"]:
subdiv_options = options["subdivision_options"]
if isinstance(subdiv_options["boundaries"], (list, tuple)):
rowsub, colsub = subdiv_options["boundaries"]
else:
rowsub = subdiv_options["boundaries"]
colsub = subdiv_options["boundaries"]
if isinstance(subdiv_options["style"], (list, tuple)):
rowstyle, colstyle = subdiv_options["style"]
else:
rowstyle = subdiv_options["style"]
colstyle = subdiv_options["style"]
if rowstyle is None:
rowstyle = dict()
if colstyle is None:
colstyle = dict()
# Make line objects for subdivisions
from line import line2d
lim = self.get_minmax_data()
# First draw horizontal lines representing row subdivisions
for y in rowsub:
l = line2d([(lim["xmin"], y - 0.5), (lim["xmax"], y - 0.5)], **rowstyle)[0]
l._render_on_subplot(subplot)
for x in colsub:
l = line2d([(x - 0.5, lim["ymin"]), (x - 0.5, lim["ymax"])], **colstyle)[0]
l._render_on_subplot(subplot)
if hasattr(self.xy_data_array, "tocoo"):
# Sparse matrix -- use spy
opts = options.copy()
for opt in [
"vmin",
"vmax",
"norm",
"origin",
"subdivisions",
"subdivision_options",
"colorbar",
"colorbar_options",
]:
del opts[opt]
if origin == "lower":
subplot.spy(self.xy_data_array.tocsr()[::-1], **opts)
else:
subplot.spy(self.xy_data_array, **opts)
else:
opts = dict(
cmap=cmap,
interpolation="nearest",
aspect="equal",
norm=norm,
vmin=options["vmin"],
vmax=options["vmax"],
origin=origin,
zorder=options.get("zorder", None),
)
image = subplot.imshow(self.xy_data_array, **opts)
if options.get("colorbar", False):
colorbar_options = options["colorbar_options"]
from matplotlib import colorbar
cax, kwds = colorbar.make_axes_gridspec(subplot, **colorbar_options)
cb = colorbar.Colorbar(cax, image, **kwds)
if origin == "upper":
subplot.xaxis.tick_top()
elif origin == "lower":
subplot.xaxis.tick_bottom()
subplot.xaxis.set_ticks_position("both") # only tick marks, not tick labels
开发者ID:jeromeca,项目名称:sage,代码行数:89,代码来源:matrix_plot.py
注:本文中的sage.misc.decorators.options.get函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论