Spaces:
Running
Running
"""Plotting module that can plot 2D and 3D functions | |
""" | |
from sympy.utilities.decorator import doctest_depends_on | |
def PygletPlot(*args, **kwargs): | |
""" | |
Plot Examples | |
============= | |
See examples/advanced/pyglet_plotting.py for many more examples. | |
>>> from sympy.plotting.pygletplot import PygletPlot as Plot | |
>>> from sympy.abc import x, y, z | |
>>> Plot(x*y**3-y*x**3) | |
[0]: -x**3*y + x*y**3, 'mode=cartesian' | |
>>> p = Plot() | |
>>> p[1] = x*y | |
>>> p[1].color = z, (0.4,0.4,0.9), (0.9,0.4,0.4) | |
>>> p = Plot() | |
>>> p[1] = x**2+y**2 | |
>>> p[2] = -x**2-y**2 | |
Variable Intervals | |
================== | |
The basic format is [var, min, max, steps], but the | |
syntax is flexible and arguments left out are taken | |
from the defaults for the current coordinate mode: | |
>>> Plot(x**2) # implies [x,-5,5,100] | |
[0]: x**2, 'mode=cartesian' | |
>>> Plot(x**2, [], []) # [x,-1,1,40], [y,-1,1,40] | |
[0]: x**2, 'mode=cartesian' | |
>>> Plot(x**2-y**2, [100], [100]) # [x,-1,1,100], [y,-1,1,100] | |
[0]: x**2 - y**2, 'mode=cartesian' | |
>>> Plot(x**2, [x,-13,13,100]) | |
[0]: x**2, 'mode=cartesian' | |
>>> Plot(x**2, [-13,13]) # [x,-13,13,100] | |
[0]: x**2, 'mode=cartesian' | |
>>> Plot(x**2, [x,-13,13]) # [x,-13,13,100] | |
[0]: x**2, 'mode=cartesian' | |
>>> Plot(1*x, [], [x], mode='cylindrical') | |
... # [unbound_theta,0,2*Pi,40], [x,-1,1,20] | |
[0]: x, 'mode=cartesian' | |
Coordinate Modes | |
================ | |
Plot supports several curvilinear coordinate modes, and | |
they independent for each plotted function. You can specify | |
a coordinate mode explicitly with the 'mode' named argument, | |
but it can be automatically determined for Cartesian or | |
parametric plots, and therefore must only be specified for | |
polar, cylindrical, and spherical modes. | |
Specifically, Plot(function arguments) and Plot[n] = | |
(function arguments) will interpret your arguments as a | |
Cartesian plot if you provide one function and a parametric | |
plot if you provide two or three functions. Similarly, the | |
arguments will be interpreted as a curve if one variable is | |
used, and a surface if two are used. | |
Supported mode names by number of variables: | |
1: parametric, cartesian, polar | |
2: parametric, cartesian, cylindrical = polar, spherical | |
>>> Plot(1, mode='spherical') | |
Calculator-like Interface | |
========================= | |
>>> p = Plot(visible=False) | |
>>> f = x**2 | |
>>> p[1] = f | |
>>> p[2] = f.diff(x) | |
>>> p[3] = f.diff(x).diff(x) | |
>>> p | |
[1]: x**2, 'mode=cartesian' | |
[2]: 2*x, 'mode=cartesian' | |
[3]: 2, 'mode=cartesian' | |
>>> p.show() | |
>>> p.clear() | |
>>> p | |
<blank plot> | |
>>> p[1] = x**2+y**2 | |
>>> p[1].style = 'solid' | |
>>> p[2] = -x**2-y**2 | |
>>> p[2].style = 'wireframe' | |
>>> p[1].color = z, (0.4,0.4,0.9), (0.9,0.4,0.4) | |
>>> p[1].style = 'both' | |
>>> p[2].style = 'both' | |
>>> p.close() | |
Plot Window Keyboard Controls | |
============================= | |
Screen Rotation: | |
X,Y axis Arrow Keys, A,S,D,W, Numpad 4,6,8,2 | |
Z axis Q,E, Numpad 7,9 | |
Model Rotation: | |
Z axis Z,C, Numpad 1,3 | |
Zoom: R,F, PgUp,PgDn, Numpad +,- | |
Reset Camera: X, Numpad 5 | |
Camera Presets: | |
XY F1 | |
XZ F2 | |
YZ F3 | |
Perspective F4 | |
Sensitivity Modifier: SHIFT | |
Axes Toggle: | |
Visible F5 | |
Colors F6 | |
Close Window: ESCAPE | |
============================= | |
""" | |
from sympy.plotting.pygletplot.plot import PygletPlot | |
return PygletPlot(*args, **kwargs) | |