PlotE Documentation
I: Producing Graphs

The Plot Window

Variables

PlotE is capable of recognizing the variable or variables you use. It also goes to great pains to decide which variables you intend to apply to the horizontal and vertical axes, and which you intend to be the independent variable. The ingredients that go into these decisions are the expressions you supply, standard mathematical conventions, and the Variables option. PlotE attempts to make all this transparent to the user, and you may never need to worry about it. But if you do, here are some of the details.

Effects

--  The horizontal and vertical variables will be used to label the axes.

--  If the independent variable of a particular function is in the set 
    $SequenceLetters, that function will be treated as a sequence. (See the 
    section on Plotables.)

--  If the vertical variable is the independent variable of a particular function, 
    that function will be plotted "sideways".

--  If any bounds item(s) do not include a variable, those interpretation of those 
    bounds will depend on the horizontal, vertical, and independent variables. If the 
    vertical variable is the independent variable, the first Bounds item will be 
    assigned to it and the second Bounds item to the horizontal variable. Otherwise 
    the first Bounds item will be assigned to the horizontal variable and the second 
    Bounds item to the vertical variable.

Variables Option

The value of the Variables option must be a list of two items of type Symbol (default: {x,y}). These will be taken to be the default horizontal and independent variable and the default vertical variable.

Bounds

A variable (optionally) used in the first Bounds item will be taken to be the horizontal variable. A variable (optionally) used in the second Bounds item will be taken to be the vertical variable.

Parametric Equations

If you give parametric equations in actual equation form, the variables on the left side of the parametric equations are taken to be the horizontal and vertical variables. The parameter itself is taken to be the independent variable.
    Parameter bounds is required, and if there is not one inside the list of parametric equations, PlotE will choose the first Bounds item. Therefore parameter bounds should always precede bounds for the horizontal and vertical axes.

Functions

Variables found in the plotable items will be used if there is doubt as the horizontal, vertical, or independent variables. 
-- the first element of the Variables option will be used as the horizontal and 
    independent variable if it occurs in the plotable items, otherwise the first 
    alphabetically among those occuring.
-- the second element of the Variables option will be used as the vertical 
    variable if it occurs in the plotable items, otherwise the second alphabetically 
    among those occuring.

Problems

There is some potential for confusion in complicated situations or if you don't make your intentions clear. PlotE can usually resolve ambiguities, but when there are problems, here are some suggestions:

-- Always include the parameter variable in the parameter bounds; for example 
    use {t,0,Pi} instead of {0,Pi}.

-- Place parameter bounds inside the list of parametric equations to resolve 
   confusion concerning the parameter variable.

-- Using explicit variables inside bounds can help eliminate variable problems; for 
    example use {x,-2,2},{y,-1,1} instead of {-2,2},{-1,1}.

Bounds

A "Bounds" item is one that specifies the interval for either the horizontal or the vertical axis. Bounds items may be of the form {min,max} or {var,min,max}. In general the first Bounds item will be taken as the plot interval and applied to the horizontal axis; however if the function plotted is a function of the default vertical variable, this interval will applied to the vertical axis. A second bounds item will be applied to the remaining axis, usually the vertical axis.
    In most cases there is no need to give the variables, but it can't hurt and may repair those rare cases where PlotE becomes confused about your choice of variables. There is no need to use an explicit PlotRange option in PlotE, although it will be accepted.

In the case of plotting parametric equations, there may be three Bounds items, one for the parameter interval, and one for each axis. In this case the parameter interval must come first, and must contain the parameter variable. For more details see "Plotables: Parametric Equations" below.

Note: In previous versions of PlotE, it was permitted to give bounds not contained within list brackets. This feature has been removed for publication, and bounds now must be given within list brackets. There are two reasons for this change. One is that experience shows that novice users quickly adapt to the consistent use of list brackets to represent intervals, and seldom revert to forgetting them. The other is that it proved impossible to have this syntax together with the plotting of constant functions, and maintain the principle of position-independence.

PlotE[x^2,{0,3}];

PlotE[x^2,{0,3},{0,4}];

PlotE[t^2,{s,0,4},{-2,2}];

Same & Square

The keyword Same guarantees that equal scales are used on the horizontal and vertical axes. More details are given below under "AspectRatio, ScaleRatio & PlotRange". The keyword Square, when used with a single interval, assigns that interval to both axes and also invokes the keyword Same.

PlotE[Sqrt[x],{0,4},{0,2},Same];

PlotE[x^2,{-1,1},Square];

PlotInterval

The PlotInterval option controls the default interval for plotting a function when none is given. The default value is (-5,5). It is ordinarily used for the horizontal axis, but may be used for the vertical axis (or both axes) if a function of the default vertical variable is given without an associated interval.

PlotE[Sin[x]];

PlotE[Abs[y]];

AspectRatio, ScaleRatio & PlotRange

The AspectRatio and PlotRange options from Plot are unchanged: AspectRatio controls the proportions of the generated graphic and PlotRange controls the vertical interval of the plot window. PlotE provides another related option, ScaleRatio, which controls the ratio of the scales on the horizontal and vertical axes. For example, ScaleRatio->2 means that 2 units on the y-axis represents the same distance as 1 unit on the x-axis.

Example

PlotE[x^2,{-1,1},ScaleRatio->2];

The use of ScaleRatio suppresses axis labels, since they would distort the desired ratio. The keyword Same is equivalent to ScaleRatio->1 (although it is actually implemented via AspectRatio->Automatic).
    The options ScaleRatio, PlotRange, and AspectRatio are not independent; you can specify any two of the three. If specific values are assigned to all three options, AspectRatio is ignored.
    The option AspectLimits is designed to prevent graphs from becoming too thin horizontally or vertically due to unforseen problems with ScaleRatio, PlotRange, and AspectRatio. It restricts the aspect ratio of the graph to lie within limits specified by the value of AspectLimits. The default value is {1/6,3}, meaning that no graph will be more than six times as wide as tall, nor more than 3 times as tall as wide.

Styles

PlotStyles

A "plotstyle" is any graphics primitive, or list of graphics primitives, which is applicable as style for lines or points. (As you will see below, graphs may contain points as well as lines.) This includes any form of a color, line thickness, line dashing, or point size primitive, or any expression that evaluates to such.
   The style keywords Dotted, Undotted, Thick and Thin are available in addition to the usual style primitives; the actual parameters of these keywords are controlled by options described later. The use of Undotted is rare but gives the opportunity to prevent a graph from being dotted because of a default style setting.

Default Styles

ColorMode

If no style information is given in the PlotE command, the determination of styles for graphs is based on the values of the options ColorStyles, MonoStyles, and ColorMode. ColorMode can be either Color (default) or Mono, and determines whether ColorStyles or MonoStyles is used as the set of default styles. ColorStyles and MonoStyles must each be a list of plotstyles. The default value for ColorStyles is {Blue,Red,Green,Black, Cyan,Magenta,Yellow,Gray}. The default value for MonoStyles is {Black,Gray,{Black,Dotted},{Gray,Dotted}}. These styles will be applied in order to multiple functions, repeating cyclically if necessary.

Examples

PlotE[Table[Sin[k*x],{k,8}],{0,Pi/2}];

PlotE[Table[Sin[k*x],{k,6}],{0,Pi/2},Mono];

DefaultBackground & DefaultStyle

PlotE introduces two additional default style options.
    PlotE has an option DefaultBackground; its purpose is to allow PlotE to set a preferred background color without corrupting the Background option of Plot. When Background is set to Automatic, the value of DefaultBackground is used (rather than White). DefaultBackground is initially set to Ecru = RGBColor[1,1,0.8] (a pastel yellow). If Background is anything other than Automatic, it takes precedence over DefaultBackground.
    The option DefaultStyle provides styles to be used as defaults for graph lines and dots and geometric objects in the absence of other information. The initial setting is {Thickness[0.002],Dashing[{}],PointSize[0.01]}.

User Styles

Instead of using default styles, style information may be included in the PlotE command. In this case default styles are completely ignored and only the given styles are used.

Colors

If a only colors are given, they are applied to the functions plotted, with cyclic repetition if necessary. Colors may be given in a list or as separate entries in the command.

Examples

The braces around the colors are optional in the first example.

PlotE[Sin[x],Cos[x],{0,Pi},{-1,1},{Cyan,Magenta}];

PlotE[Sin[x],Cos[x],{0,Pi},{-1,1},Cyan];

Styles

If several plotstyles are given, as single items or in a list, they are applied to the functions in order, with cyclic repetition if necessary. In this next example, Cyan is treated as one style and {Magenta,Thick} as another.

Example

PlotE[Sin[x],Cos[x],Cos[2x],{0,Pi},{-1,1},Same,
	Cyan,{Magenta,Thick}
];

Colors & Styles

If a single color is given with other style directives, all are combined into a single style. But if two lists (or a list and a single item) of styles are given, one involving only color and the other excluding color, the two lists are ¼threaded½ together. The effect is that colors and other styles items are treated separately, each cyclically repeating if necessary.

Examples

In this example, Cyan,Dotted is treated as a single style.

PlotE[Sin[x],Cos[x],{0,Pi},{-1,1},
	Cyan,Dotted
];

In this example, Dotted is combined with each color. The result is equivalent to {Cyan,Dotted},{Magenta,Dotted}.

PlotE[Sin[x],Cos[x],{0,Pi},{-1,1},
	{Cyan,Magenta},Dotted
];

In this example, Cyan is combined with each style. The result is equivalent to {Cyan,Dotted},{Cyan,Thick}.

PlotE[Sin[x],Cos[x],{0,Pi},{-1,1},
	Cyan,{Dotted,Thick}
];

In this example, the result is equivalent to {Cyan,Dotted},{Magenta,Thick} and it is clearer to write it that way. To apply both Dotted and Thick to both graphs, omit the list braces around them.

PlotE[Sin[x],Cos[x],{0,Pi},{-1,1},
	{Cyan,Magenta},{Dotted,Thick}
];

ColorFunction

The option ColorFunction (default: None) allows graph segments to be plotted in different colors. The value Automatic generates a "rainbow" effect, and can be invoked via the keyword Rainbow.

Examples

PlotE[x^2,{-1,1},ColorFunction->Automatic];

PlotE[{x==Cos[t],y==Sin[t]},{t,0,2Pi},Rainbow];

The user can provide a value for the ColorFunction option; it must be a function of one argument, a point {x,y}. You can define a function in advance and use it in the PlotE command, or use can use a pure function on the spot. Here is an example where the graph is colored by a shade of green whose brightness is given by the y-coordinate of the point.

Example

PlotE[x^2,{-1,1},
ColorFunction->(RGBColor[0,Last[#],0]&)];

Plotables

PlotE recognizes five different types of items to be plotted: formulas, equations, parametric equations, sequences, and data sets.

Functions

Any item not otherwise recognized is tested to see if it is a standard function of one variable to be plotted. A function of two variables will usually generate an error message. Functions with different independent variables may be used, but a function of the default second variable (usually y) will be plotted with the independent variable on the vertical axis.

Examples

PlotE[x^2 Exp[-x],{0,3}];

The following command intentionally generates an error message.

PlotE[x^2 Exp[-y],{0,3}];

PlotE[x^2,Exp[-t],{0,3}];

PlotE[x^2,Exp[-y],{0,3}];

Equations

Equations are recognized by the presence of an equal sign. An equation may be given with either one equals sign or a double equal sign (==); the latter is standard syntax.

Example

PlotE[y == x^2, x == y^2, x^2 + y^2 = 1, y = 0.5, x = 0.3,
	{-1,1},{-1,1},Same
];

Warning: When using a function of the vertical variable, either as a function or as an equation, it is best to give explicit vertical bounds for the plot window. Otherwise the default bounds of [-5,5] may be used for the vertical variable. To see this effect, remove the second bounds of {-1,1} from the above command and re-execute.

Parametric Equations

Parametric Equations are recognized in several ways. If the option Parametrics is set to True, or if the keyword Para occurs as an item in the PlotE command, then any list of two formulas is treated as parametric equations. Any list of two equations each with left member of type Symbol, is treated as parametric equations. In all cases a parameter Bounds item may be included in the list, otherwise PlotE will look for parameter bounds among other items in the command. Failure to provide parameter bounds will result in an error.

Examples

PlotE[{Cos[t],Sin[t]},{t,0,2Pi},Para,Same];

PlotE[{x = Cos[t],y = Sin[t],{t,0,2Pi}},
			{x = Cos[2t],y = Sin[3t],{t,0,Pi}},Same];

Sequences

PlotE deals with two types of sequences: sequence formulas and sequence lists. Sequence formulas are formulas whose variable begins with a character in the set $SequenceLetters; any additional characters must be numerals. The default value of $SequenceLetters is {"i","j","k","l","m","n"}. A sequence list is simply a list of numbers interpreted as a sequence. Any list of numbers of length 3 or more will be interpreted as a sequence. 
    An item recognized as a sequence formula is evaluated only for integer values of its variable. The result is filtered through the built-in ListPlot command, as is a sequence list. The result is plotted with dots and lines connecting the dots (i.e. the PlotJoined option is set to Both). You can suppress either by using the Nolines or Nodots keywords.

Example

PlotE[(-1)^n/Sqrt[n],{n,1,10},
	{0.92,0.86,0.74,0.61,0.53,0.47,0.38,0.26,0.19,0.13}
];

MaxSeqPoints

When plotting a sequence to determine its long-term behavior, you may want to plot the sequence over a large interval, say [0,100000], without necessarily calculating and plotting all 100,000 points! The option MaxSeqPoints (default:200) sets an upper bound on the number of points plotted individually in the graph of a sequence. If a larger interval is given, only a representative selection of points is plotted, and lines are not drawn between points. This can of course give a misleading picture in rare circumstances, but it beats plotting 100,000 points. And even plotting all points can result in visual artifacts, as in the following example (taken from Strang's "Calculus").

PlotE[Sin[n],{n,0,1000},Nolines,MaxSeqPoints->1000];

Data Sets

A list of ordered pairs of numbers is recognized as a data set, and is filtered through the ListPlot command. The result is plotted with dots only (i.e. the PlotJoined option is set to None)

Example

PlotE[Table[{Random[],Random[]},{20}],
			Table[{Random[],Random[]}/2,{10}],
			{0,1},Square,Medium
];

Combinations

All of the above plotables can be used together. Parametric equations are  considered separately, and come at the end of the list of functions for assigning colors regardless of their position in the actual list of plotables. Note in this example the placement of the bounds information before the items to be plotted. This placement can be convenient in a complicated PlotE command, as otherwise the bounds get lost among the other items.

Example

PlotE[{-1,1},Square,
	{x==Cos[2t],y==Sin[3t],{t,0,2Pi}},
	Table[{Random[],Random[]},{10}],
	1/(1+n^2),x^2,x^2+y^2==1
];

Features

Labels

Any text item occuring in the PlotE command will be taken to be a label for the plot, so it is not necessary to use the PlotLabel option explicitly.
    The default axis labels are the horizontal and vertical variables. This can be changed by using the AxesLabels option for Plot, in particular, AxesLabels->None will suppress axis labels. Labels are suppressed when using the keywords Same or Square or the option ScaleRatio as they distort the proportion between the scales on the axes.

Invert

The option Invert has three possible values: False (default), True, and Both. When the value True is used, which can be done by using Invert as keyword rather than the full option Invert->True, the coordinates of all points on the graph are reversed. The effect is that of reflecting the graph across a 45¡ line through the origin. This can be used to plot the inverse function (or inverse "relation" if multiple-valued) even if a formula for the inverse is not available. The value Both plots both the original function and the inverse. The Invert option applies to all items plotted regardless of their type. To apply different values of the Invert option to multiple items, use list of options values (see the second example below).
    The InvertStyle option is available to assign a different style to the inverted graph than to the original. This is most useful when using the Both value. Different styles for more than one inverted graph can be given as a list of styles (see the second example below).

Examples

PlotE[Exp[x]/(1+x^2),{0,3},Square,
	Invert->Both,InvertStyle->Red
];

PlotE[x^3,Exp[x]/(1+x^2),{0,3},Square,
	Invert->{True,Both},InvertStyle->{Cyan,Green}
];

PlotJoined

The option PlotJoined has four possible values: Automatic (default), True, False, and Both. When the value True is used, points on the graph are connected by lines, but no dots are drawn at the points. When the value False is used, no lines are drawn, but small dots are drawn at the locations of the plotted points. When the value Both is used, both lines and medium dots are drawn. The point size can be overridden by including a point size primitive or keyword in the command.
    The Automatic value uses the value True when plotting functions, equations, and parametric equations, Both when plotting sequences, and False when plotting data sets.

The following keyword equivalents are available:
PlotJoined->True:  Lines,  Nodots
PlotJoined->False: Dots, Nolines
PlotJoined->Both:  Both, Join
Nodots and Nolines are equivalents for the options PlotJoined->True and PlotJoined->False respectively. These keywords are designed for plotting sequences when one does not wish both dots and lines, but they could be used in other contexts as well.

The PlotJoined option applies to all items plotted regardless of their type. To apply different values of the PlotJoined option to multiple items, use a list of options values (see the third example below).

Examples

PlotE[x^3,{-1,1},PlotJoined->False];

PlotE[Sin[x],{0,Pi},PlotJoined->Both];

PlotE[Sin[x],Cos[x],{0,Pi},
	PlotJoined->{Both,False},Medium
];

SubPlots

Any item of the form SubPlot[...] inside a PlotE command will be treated as a complete PlotE command to be combined into the resulting graph. This is a powerful construction that can be used in a variety of ways.

One way would be to graph functions over different subintervals.

PlotE[Sin[x],{0,Pi},Same,
	SubPlot[Sin[2x],{0,Pi/2},Red],
	SubPlot[1/x,{Pi/2,Pi},Green],
	SubPlot[Sin[12x]/3,{Pi/3,2Pi/3},Black]
];

If no colors were given, each function would be in Blue, since each SubPlot is treated as a separate PlotE command. This could also be done using Piece functions. (See the chapter on Extras.)

PlotE[Sin[x],{0,Pi},Same,
	Piece[Sin[2x],{0,Pi/2}],
	Piece[1/x,{Pi/2,Pi}],
	Piece[Sin[12x]/3,{Pi/3,2Pi/3}]
];

This runs considerably faster, but has some disadvantages. Notice that the segment of sin(12x) is much cruder than with SubPlots. This is because the Piece function is graphed over the entire interval, so only one-third of the points plotted were actually used. If the function were plotted over a smaller interval or oscillated more rapidly, the graph could be completely wrong. With SubPlots each function is plotted only over its designated interval, so all points calculated are used in drawing its graph.

SubPlots give you complete freedom in using the features of PlotE in any combination, even if the features cannot be combined in a single plot. In particular SubPlots make it unnecessary to do several plots and then use the Show command.

Zoom

Zoom is a command that can occur only inside a PlotE command. The syntax is Zoom[point,factor:5,times:1]. point can be an ordered pair or just an x-coordinate, in which case the first function plotted is used to calculate the y-coordinate. factor (default:5) is the magnification factor used when zooming in. times (default:5) is the number of times zooming at the given magnification factor is performed.
    By using a magnification factor of less than 1, you can zoom out instead of zooming in.
    In order to use Zoom, there must be an explicit y-interval (or the keyword Square) given in the PlotE command.

Examples

Zoom[{2,0}] zooms in on the point {2,0} with the default magnification factor of 5.
Zoom[1] zooms in on the point on the graph with x-coordinate of 1.
Zoom[1,10] zooms in with a magnification factor of 10.
Zoom[{2,0},3,4] zooms in 4 times with a magnification factor of 3.
Zoom[1,1/5] zooms out with a magnification factor of 1/5.

PlotE[x(x-2)^2,{0,3},{0,3},Zoom[{2,0}]];

PlotE[x(x-2)^2,{0,3},{0,3},Zoom[1]];

PlotE[x(x-2)^2,{0,3},{0,3},Zoom[1,10]];

PlotE[x(x-2)^2,{0,3},{0,3},Zoom[{2,0},3,4]];

PlotE[x(x-2)^2,{0,3},{0,3},Zoom[1,1/5]];

Fills

The region between a graph and the x-axis, or between multiple graphs, can be filled in using the keyword Fill. As with all filled regions, it may be convenient to used a framed plot so the fill does not obscure the axes.
    When there is only one function, it is assumed the region between the graph and the x-axis is to be filled. With more than one function, regions between the graphs in order are filled in different colors. The x-axis can still be used as a region boundary by including the function 0.

Examples

PlotE[Sin[x],{0,Pi},Fill];

PlotE[Sin[x],Cos[x],{0,Pi},Fill,Frame];

PlotE[0,Sin[x],x,Tan[x],{0,1.5},{0,5},Black,Fill];

Fill Colors

The keyword Fill is a substitute for the option GraphFill->True. When GraphFill has the value True, a default list of colors given by the option GraphFillColors is used to fill the regions between graphs as shown above. You can use a different list of colors by giving that list as the value of the GraphFill option, or by simply using Fill as a command containing the desired colors.

PlotE[0,Sin[x],x,Tan[x],{0,1.5},{0,5},Black,
Fill[Yellow,Orange,Red]];

Direction & Concavity

The keyword Direction will show the increasing and decreasing portions of each function in different colors. The keyword Concavity will show the concave up and concave down portions of each function in different colors. Both keywords can be used, in which case all four combinations of direction and concavity will be shown in different colors.

Examples

PlotE[x^4 - x^2,{-2,2},Direction];
PlotE[x^4 - x^2,{-2,2},Concavity];

PlotE[Sin[x],Cos[x],{-Pi,Pi},Direction,Concavity];

These keywords work by generating two functions, each defined only where the derivatives meet the necessary conditions. They apply only to formulas (not to equations or parametric equations) and may cause problems if these formulas are not differentiable.

UsePi

The UsePi option controls whether ticks are given as multiples of pi, as you have seen in many of the graphs above. The default value Automatic gives such ticks on the horizontal axis whenever both endpoints of the plot interval are multiples of pi (or 0). You can override this by using other values of this option:
-- True:   use "pi ticks" on the horizontal axis only.
-- False: don't use "pi ticks", even if both endpoints are multiples of pi.
-- Both:   use "pi ticks" on both axes.
-- an ordered pair, each either True or False: specify for each axis whether or 
    not to use "pi ticks".

Examples

PlotE[Sin[x],{0,2Pi},UsePi->False];

PlotE[x^2,{0,1},UsePi->True];

PlotE[ArcSin[x],{-1,1},UsePi->{False,True}];

PlotE[ArcSin[x],Sin[x],{-Pi/2,Pi/2},Square,
UsePi->Both,Frame->True];

Asymptotes & Splits

Several approaches are offered for the problems of plotting or not plotting asymptotes, discontinuities, or spurious vertical portions of the graph.

Asymptotes

If the value of the option Asymptotes is True (default), PlotE will attempt to locate vertical asymptotes of any function plotted. If an asymptote is found, the graph will be split at that point to prevent upper and lower asymptotes from being connected by an unsightly vertical line. Instead an asymptote will be drawn in the style given by the option AsymptoteStyle (default: {GrayLevel[0.5],
Dotted}).
    If an apparent vertical asymptote turns out to be instead a removable discontinuity, an open dot will be drawn at that location. The methods used to search for asymptotes and test for removable discontinuities are purely heuristic and not at all robust. They will detect the vast majority of commonly occuring asymptotes and removable discontinuities but it would not be difficult to fool them. Nevertheless the search routines are time-consuming, and you may wish to turn them off by using the value False for the option Asymptotes.

Examples

PlotE[Tan[x],Cot[x],{-Pi,Pi},{-5,5}];

PlotE[(x^4-1)/(x^2-1),{-2,2},{0,4}];

"Extended Bounds"

PlotE supports the "extended bounds" syntax introduced by Tom Wickham-Jones of Wolfram Research, Inc. In this syntax, additional coordinates placed in the plot interval are interpreted as splitting the graph into several separately plotted portions of the function. For example, instead of using {x,0,3}, one could use {x,0,1,2,3}, requesting separate plots over (0,1), (1,2), and (2,3). The use of the plot variable is required, as otherwise a list of more than two numbers is interpreted by PlotE as a data set to be plotted as a sequence.
    Unlike the other methods in this section, the use of extended bounds results in multiple calls to the built-in Plot command; therefore this method will take longer to execute. In PlotE, this is done via the SubPlot mechanism. This means that extended bounds are applied to all items plotted, and can be used in virtually any context.

Example

PlotE[1/((x-1)(x-2)),{x,0,1,2,3},Asymptotes->False];

Split

When it is enough to simply remove a few offending segments from a graph, a Split command will do the trick. Split[a,b,...] placed inside a PlotE command will take a single plot and delete from the graph the line segments lying above the x-coordinates a, b, etc. Be aware that this could leave a visible gap in the graph, as some graph segments are fairly long.
    This is a method of dealing with asymptotes "manually" that executes faster than the "extended bounds" mode, although the graph may be of somewhat lower quality due to fewer points being plotted.

Examples

PlotE[SquareWave[x],{-3,3}];
PlotE[SquareWave[x],{-3,3},Split[-2,-1,0,1,2]];

PlotE[1/((x-1)(x-2)),{x,3},Split[1,2],Asymptotes->False];

MaxSlope

The first method used by PlotE to deal with asymptotes was an option called "MaxSlope". The idea was that if MaxSlope were set to say, 1000, all segments of slope greater than 1000 were deleted from the graph. This option has been removed from PlotE since the methods listed above seem to be superior and to make MaxSlope obsolete. If you feel otherwise, MaxSlope could be reinstated.

Graphics

An item or items with head Graphics, ContourGraphics, or DensityGraphics may be included in a PlotE command, and will be combined with the results of the remainder of the command. This is done very simplistically and the results may or may not be as desired. Nevertheless, here is an interesting example.

cp = ContourPlot[Sqrt[x^2 + y^2],{x,-2,2},{y,-2,2}];
PlotE[Sin[Pi x],{-2,2},cp];

Keyword List

Below are the keywords available for use with PlotE. Keywords are shortcuts to doing common things that otherwise are a lot more bother. Most are divided into two types: Geometric keywords which replace unwieldy geometric style primitives, and Option Substitutes, which replace wordy options.
    For each keyword its equivalent replacement is given, along with a brief explanation of its use.

Geometric

Dotted

Dotted-> Dashing[dashes]
dashes is the value of the Dashes option.
Using Dotted is an easy way to specify a dotted line or graph.

Undotted

Undotted->Dashing[{}]
Using Undotted is an easy way to cause a line or graph that would be dotted by default to not be dotted.

Small

Small->  PointSize[dotsmall]
dotsmall is the value of the DotSmall option.
Using Small is an easy way to specify that small dots be drawn.

Medium

Medium-> PointSize[dotmedium]
dotmedium is the value of the DotMedium option.
Using Medium is an easy way to specify that medium-size dots be drawn.

Large

Large->  PointSize[dotlarge]
dotlarge is the value of the DotLarge option.
Using Large is an easy way to specify that large dots be drawn.

Thick

Thick->  Thickness[thicksize]
thicksize is the value of the ThickSize option.
Using Thick is an easy way to specify a thick line or graph.

Thin

Thin->   Thickness[thinsize]
thinsize is the value of the ThinSize option.
Using Thin is an easy way to specify a thin line or graph.

Option Substitutes

All

All->    (PlotRange->All)

All guarantees that the entire graph of the function over the specified interval is shown.

Color

Color->  (ColorMode->Color)

Color uses color background and graphs. Unnecessary unless the ColorMode option has been set to Mono.

Frame

Frame->  (Frame->True)

Frame places a box around the graph and axes on the outside of the box.

Fill

Fill->   (GraphFill->True)

Fill fills in the regions between graphs.

Grid

Grid->   (Grids->Automatic)

Grid is the easiest way to place a grid in the plot. For more details on grids, see the chapter on Geometric Objects.

Hide

Hide->   (DisplayFunction->Identity)

Hide suppresses the generation of a graphics cell. This is useful if generating a Graphics object you don't want to display immediately.

Invert

Invert-> (Invert->True)

Invert causes the coordinates of all plotted points to be reversed. This applies to all items plotted; use a SubPlot to apply it to only some items.

Mono

Mono->   (ColorMode->Mono)

Mono uses white background and grayscale graphs. Useful for monochrome monitors and printers. Mono does not prevent color due to DefaultColor, ColorFunction, or geometric objects.

Lines & Nodots

Lines-> 	(PlotJoined->True)
Nodots-> (PlotJoined->True)

Lines and Nodots suppress the drawing of dots at points used in plotting a graph. This is only necessarily when they would otherwise be drawn, as in the graphing of a sequence. As a side effect, lines are drawn even when they would not ordinarily be drawn, as with a data set.

Dots & Nolines

Dots->				(PlotJoined->False)
Nolines->	(PlotJoined->False)

Dots and Nolines suppress the drawing of lines between points used in plotting a graph. This might be useful in the graphing of a sequence, when they would ordinarily be drawn. As a side effect, dots are drawn even when they would not ordinarily be drawn, as with an ordinary function.

Both & Join

Both->				(PlotJoined->Both)
Join->				(PlotJoined->Both)

Both and Join ask for the drawing of of both dots at plotted points and lines between those points.

Origin

Origin-> (AxesOrigin->{0,0})

Origin guarantees that the axes intersect at (0,0).

Para

Para->   (Parametrics->True)

Para guarantees any list of two functions be treated as parametric equations.

Rainbow

Rainbow->(ColorFunction->Automatic)

Rainbow draws a graph whose color varies through the cycle Red-Yellow- Green-Cyan-Blue-Magenta-Red. This is useful when plotting parametric equations to see where the graph begins and the actual motion following.

Same

Same->   (AspectRatio->Automatic)

Same guarantees the same scale is used on both axes.

Square

Square-> ({hmin,hmax},AspectRatio->Automatic)

Square is equivalent to Same and using the same bounds for each axis. For example, {0,4},Square is an exact equivalent for {0,4},{0,4},Same.

Other

Direction

Direction causes the increasing and decreasing portions of formula graphs to be plotted in different colors.

Concavity

Concavity causes the concave up and concave down portions of formula graphs to be plotted in different colors.

Option List

Additional options for PlotE concerning geometric objects are discussed in the second part of the PlotE documentation. Among those listed here, you will seldom want to use any of them directly in a PlotE command -- there are usually an easier way. Those with asterisks are ones you are encouraged to modify to suit your own tastes.

Options

*AspectLimits->{1/6,3}

The value can be a list of two positive real numbers, which are the smallest and largest values of AspectRatio permitted in a graph. A value of None is interpreted as {0,Infinity}.";

*Asymptotes->True

A value of True means that asymptotes and removable disconinuities will be searched for and drawn. A value of False means this will not be done, and can result in improved performance on slower computers.

*AsymptoteStyle->{GrayLevel[0.5],Dotted}

AsymptoteStyle gives a style appropriate for lines which isused to draw asymptotes.

ColorFunction->None

ColorFunction allows graph segments to be drawn in different colors. The value can be a function of a point {x,y} with output of the form RGBColor[a,b,c]. The value Automatic produces a full range of color. The keyword Rainbow is interpreted as ColorFunction->Automatic.

*ColorMode->Color

The possible values are Color and Mono, each of which can be used as a keyword to change the setting. Color invokes the use of ColorStyles for automatic graph coloring, and Mono invokes the use of MonoStyles.

*ColorStyles->{Blue,Red,Green,Black,Cyan,Magenta,Yellow,Gray}

ColorStyles gives a list of graph colors or styles appropriate for a color monitor or printer. They will be used sequentially, with repetition if necessary, when no graph styles are specified in a PlotE command and ColorMode is set to Color.

*Dashes->{0.02,0.01}

Dashes gives the values for Dashing[{a,b}] to be substituted for the keyword Dotted.

*DefaultBackground->Ecru

DefaultBackground specifies a background color to be used in all plots when no Background option is used. (This may seem redundant, but I wanted to provide a way to change the default background color without making a permanent change to the Background option of Plot.)

*DefaultStyle->{Thickness[0.002],Dashing[{}],
	PointSize[0.01]}

DefaultStyle sets general defaults for style primitives such as Thickness or PointSize which are used when no other specification is available.  The only practical use of this option is to change the default thickness of graphs. Point sizes are usually controlled by other options.

GraphFill->False

If the value is True, regions between graphs of functions are filled with the colors given by GraphFillColors. If the value is a list of colors, those colors are used for the fills. The keyword Fill is equivalent to GraphFill->True, and Fill[colors] is equivalent to GraphFill->{colors}.

*GraphFillColors->{Cyan,Magenta,Yellow,Gray}

GraphFillColors gives a list of colors to be used by GraphFill.

Indicators->None

Indicators is an option for PlotE intended for internal use. The value can be None or any subset of {Direction,Concavity}. The user can directly include as keywords any indicators desired.

Invert->False

If the value is True, the x- and y-coordinates of all points plotted are reversed. If the value is Both, both the original and inverted graphs are plotted. A value of False leaves the graph unchanged. For use with more than one function, a list of these values can be given, applying to each function in turn.

*InvertStyle->Automatic

InvertStyle gives the style to apply to a graph generated by Invert. There is currently no good alternative to this option for altering the style of the inverted graph.

*MaxSeqPoints->200

MaxSeqPoints gives the maximum number of points plotted for a sequence. If the domain of the plot exceeds this number, only a selection of points will be plotted. This allows you to plot sequences over very large intervals without worrying about the number of points generated. To always plot all points for sequences, use a value of Infinity.

*MonoStyles->{Black,Gray,{Black,Dotted},{Gray,Dotted}}

MonoStyles gives a list of graph styles appropriate for a monochrome monitor or printer. They will be used sequentially, with repetition if necessary, when no graph styles are specified in a PlotE command and ColorStyles is set to Mono.

*Parametrics->False

If the value is False, pairs of functions in list braces are treated as ordinary functions. If the value is True, pairs of functions in list braces are treated as parametric equations. The keyword Para is equivalent to Parametrics->True.

PlotJoined->Automatic

If the value is True, dots are not drawn at the locations of plotted points, but lines connecting those points are drawn. If the value is False, dots are drawn but not connecting lines. If the value is Both, both dots and lines are drawn. If the value is Automatic, False is used for data sets of points, Both is used for sequences, and True is used for all other graphs. For use with more than one function, a list of these values can be given, applying to each function in turn. Dots and Nolines are keywords equivalent to PlotJoined->True, Lines and Nodots are keywords equivalent to PlotJoined->False, and Both and Join are keywords equivalent to PlotJoined->Both.

*PlotInterval->{-5,5}

PlotInterval gives the default plot interval for the independent variable.

ScaleRatio->Automatic

ScaleRatio gives the ratio of the length of one unit on the vertical axis to the length of one unit on the horizontal axis. The keyword Same is equivalent to ScaleRatio->1 (or AspectRatio->Automatic) and results in the same scale being used on both axes.

SeqInterval->{0,10}

SeqInterval gives the default plot interval for sequences.

Splits-> None

Splits removes the graph segments containing the points listed. The keyword Split[values] is equivalent to Splits->{values}.

SubPlots->None

The value must be None or a list of subplots, each of which will be interpreted as a PlotE command to be executed. SubPlots is intended for internal use; the user can directly include subplots in the form SubPlot[items].

*ThickSize->0.01

ThickSize gives the value for Thickness invoked by the keyword Thick.

*ThinSize->0

ThinSize gives the value for Thickness invoked by the keyword Thin.

UsePi->Automatic

UsePi determines the use of ticks which are fractional multiples of pi. If the value is Automatic, such ticks are used on the horizontal axis only whenever both endpoints of the plot interval are rational multiples of pi (including zero). If the value is True (False) such ticks are used (not used) regardless of the endpoints. The value may also be a list of two values for the horizontal and vertical axes.

*Variables->$Variables

Variables gives the default horizontal and vertical variables. $Variables is set to {"x","y"}. Other values can be ordered pairs of either symbols or strings. Strings are converted to symbols before use, and are recommended as they cannot have values assigned to them.

*ZoomFactor->5

ZoomFactor gives the default magnification factor used with Zoom[].";