2D Functions
Function Plot
Parametric Plot
Multiple Parametric Plot
Filled Plot
Multiple Filled Plot
Logarithmic Plot


2D Data Plots
Data Plot
Data Error Plot
Data Logarithmic Plot
Data Labeled Plot


Contour & Density Plots
Contour Plot
Density Plot
Level Curves


3D Functions
3D Function Plot
3D Parametric Plot
3D Multiple Parametric Plot
3D Vector Field
3D Gradient Field
Shadow 3D Function

3D Data Plots
Contour 3D Data Plot
Density 3D Data Plot


Special Plots
Vector Field
Bar Charts
Pie Chart
Zonotope Show


Links
About This Site
Citation & Credits
Sci.Vis. Tutorials
webComputing


Level Curves

Plot curves that are given implicitly as the solutions to equations. The implemented method finds solutions to the equation at each point in the x range. It carefully avoids dangerous points, plotting to within machine precision of those points, to generate an apparently smooth graph.


Enter an equation (of x and y):  " >  =  " >   

Plot range for x :  " >  < = x < =  " >

Compare the graphics produced by Solve method and by the Contour Plot method. Contour Plot treats the equation as a function in three-dimensional space, and generates a contour of the equation cutting through the plane where z equals zero (see also ContourPlot page). Contour Plot method is faster than the Solve method and handles a greater variety of cases, but may generate rougher graphs, especially around singularities or intersections of the curve.

<%Mathlet MSPSetDefault[$$plot,"Implx"];%> > Plot using Solve method

> Plot using Contour Plot method    Specify y range:  " >  < = y < =  " >


<%Mathlet Needs["Graphics`ImplicitPlot`"]; %>
<%Mathlet MSPBlock[{$$xBeg,$$xEnd,$$yBeg,$$yEnd,$$lefteq1,$$righteq1,$$lefteq2,$$xRangeBeg, $$xRangeEnd, $$yRangeBeg, $$yRangeEnd, $$zRangeBeg, $$zRangeEnd, $$righteq2,$$lefteq3,$$righteq3,$$frame,$$plotLabel,$$fr1,$$fr2,$$fr3,$$fr4, $$rotateLabel,$$plotPoints,$$axes,$$xAxeLabel,$$yAxeLabel,$$xAxeOrigin, $$yAxeOrigin, $$xTicks, $$yTicks, $$xGrids, $$yGrids,$$aspectRatio,$$rColor, $$gColor, $$bColor, $$rColorBackg, $$gColorBackg, $$bColorBackg, $$imageSize}, l = {}; color = {}; If[Head[l1 = $$lefteq1 == $$righteq1] === Equal, l = Append[l,l1]; color = Append[color,RGBColor[0,0,0]]]; If[Head[l1 = $$lefteq2 == $$righteq2] === Equal, l = Append[l,l1]; color = Append[color,RGBColor[1,0,0]]]; If[Head[l1 = $$lefteq3 == $$righteq3] === Equal, l = Append[l,l1]; color = Append[color,RGBColor[0,0,1]]]; If[l =!= {}, arguments = {l,{x,$$xBeg,$$xEnd}, PlotRange->{If[$$xPlotRange === "Specified",{$$xRangeBeg,$$xRangeEnd}, MSPToExpression[$$xPlotRange]], If[$$yPlotRange === "Specified",{$$yRangeBeg,$$yRangeEnd}, MSPToExpression[$$yPlotRange]]}, AspectRatio->If[$$aspectRatioFlag === "Specified", $$aspectRatio, MSPToExpression[$$aspectRatioFlag]], Frame->$$frame, FrameLabel->{If[$$fr1 === Null, "", ToString[HoldForm[$$fr1]]], If[$$fr2 === Null, "", ToString[HoldForm[$$fr2]]], If[$$fr3 === Null, "", ToString[HoldForm[$$fr3]]], If[$$fr4 === Null, "", ToString[HoldForm[$$fr4]]]}, PlotLabel->If[$$plotLabel === Null,"",ToString[HoldForm[$$plotLabel]]], RotateLabel->$$rotateLabel, PlotPoints->$$plotPoints, Axes->$$axes, Ticks-> {If[$$xTicksFlag === "Specified", $$xTicks, MSPToExpression[$$xTicksFlag]], If[$$yTicksFlag === "Specified", $$yTicks, MSPToExpression[$$yTicksFlag]]}, GridLines-> {If[$$xGridsFlag === "Specified", $$xGrids, MSPToExpression[$$xGridsFlag]], If[$$yGridsFlag === "Specified", $$yGrids, MSPToExpression[$$yGridsFlag]]}, AxesLabel-> {If[$$xAxeLabel === Null, "", ToString[HoldForm[$$xAxeLabel]]], If[$$yAxeLabel === Null, "", ToString[HoldForm[$$yAxeLabel]]]}, AxesOrigin-> If[$$axesOriginFlag === "Specified", {$$xAxeOrigin, $$yAxeOrigin}, Automatic], DefaultColor->If[{$$rColor,$$gColor,$$bColor} =!= {"","",""}, RGBColor[$$rColor,$$gColor,$$bColor], Automatic], Background-> If[{$$rColorBackg,$$gColorBackg,$$bColorBackg} =!= {"","",""}, RGBColor[$$rColorBackg,$$gColorBackg,$$bColorBackg], Automatic], ImageSize-> If[NumberQ[$$imageSize],$$imageSize,Automatic], PlotStyle->color}; If[$$plot === "Implx", result = ImplicitPlot @@ arguments; MSPShow[result], If[NumberQ[$$yBeg] && NumberQ[$$yEnd], arguments = Insert[arguments,{y, $$yBeg, $$yEnd},3]; arguments = ReplacePart[arguments, PlotRange-> If[$$zPlotRange === "Specified", {$$zRangeBeg,$$zRangeEnd}, MSPToExpression[$$zPlotRange]], 4]; result = ImplicitPlot @@ arguments; MSPShow[result], "FOR THE CONTOUR PLOT METHOD YOU SHOULD SPECIFY VALUES FOR Y RANGE"] ], "YOU SHOULD ENTER AT LEAST ONE EQUATION" ] ] %>

Save as: 

With file name:   " >


<%Mathlet MSPBlock[{$$fname, $$submitButton1}, c = If[$$fname === Null, "", ToString[$$fname]]; ftype = Switch[$$opt, "jpg", "JPEG", "tif", "TIFF", "eps", "EPSTIFF", "xbm", "XBitmap", "mps", "MPS", _ , $$opt]; If[Head[result] === Graphics || Head[result] === ContourGraphics, MSPReturn[DisplayString[result, ftype], "image/"<>ftype , c<>"."<>$$opt] ] ] %>
Equation 2 (red): " > = " >

Equation 3 (blue): " > = " >

Number of plot points:  " >

General options

Plot range:  (All - all points are included, Automatic - outlying points are dropped)

X:  <%Mathlet MSPSetDefault[$$xPlotRange, "Automatic"] %> > Automatic   > All   > Specified   " >  < = x < =  " >  active only for Solve method

Y:  <%Mathlet MSPSetDefault[$$yPlotRange, "Automatic"] %> > Automatic   > All   > Specified   " >  < = y < =  " >  active only for Solve method

Z:  <%Mathlet MSPSetDefault[$$zPlotRange, "Automatic"] %> > Automatic   > All   > Specified   " >  < = z < =  " >  active only for Contour Plot method

Axes:   <%Mathlet MSPSetDefault[$$axes, "Automatic"] %> > Automatic > None

Axes origin:   <%Mathlet MSPSetDefault[$$axesOriginFlag, "Automatic"] %> > Automatic > Specified:    X : " >    Y : " >

Axes label:  x label:  " >   y label:  " >

<%Mathlet MSPSetDefault[$$xTicksFlag, "Automatic"] %> <%Mathlet MSPSetDefault[$$yTicksFlag, "Automatic"] %> Ticks:
Whether to draw tick marks if there are axes. You may specify the positions at which ticks will be drawn.

X :  > Automatic > None > Specified:   " > (list of values)

Y :  > Automatic > None > Specified:   " > (list of values)

<%Mathlet MSPSetDefault[$$xGridsFlag, "None"] %> <%Mathlet MSPSetDefault[$$yGridsFlag, "None"] %> GridLines:
Whether to draw gridlines. You may specify the positions at which gridlines will be drawn.

X :  > None > Automatic > Specified:   " > (list of values)

Y :  > None > Automatic > Specified :   " > (list of values)

<%Mathlet MSPSetDefault[$$frame, "False"] ;%> Frame:  > True > False

Frame labels:

Frame label down:   " >   Frame label left:   " >

Frame label up:   " >   Frame label right:   " >  

<%Mathlet MSPSetDefault[$$rotateLabel, "True"] %> Rotate labels:   > True > False   (whether to allow text in frame labels to be vertically positioned)

Plot label:   " >

<%Mathlet MSPSetDefault[$$aspectRatioFlag, "Automatic"] %> Aspect ratio:   > Default > Automatic > Specified :  " >
Setting the AspectRatio option changes the whole shape of your plot. AspectRatio gives the ratio of height to width.
Its default value is the inverse of the Golden Ratio - supposedly the most pleasing shape for a rectangle.
Automatic determines the shape of the display area from the original coordinate system.


Plot color (RGB color):  red part :  " >   green part :  " >   blue part :  " >
Specifies the default color to be used for axes, frames and bounds of the figure. The values of the color parts must be between 0 and 1.

Background (RGB color):  red part :  " >   green part :  " >   blue part :  " >

Image size:   ">   specifies that the image should have a width of x printer's points

  
© 2004 webComputing,   Scientific Visualization