Plotting Equations
At this time, qdex does not allow you to simply input an equation and plot it automatically. To plot any equation, you must create a for-loop inside of a script that calculates the y value of said equation, then adds (x,y) points to a buffer on each iteration. When the for-loop is finished, the Update method is called to add the specified points to the plot.
Example 1
This example plots the equation 4x^3 - x + 9 over the range -100 to 100.
You can copy this example into your document as-is.
<xyPlot name="myPlot"> <series name="aSeries" manual="true"/> </xyPlot> <script> local x, y; local plotPointer = myPlot.aSeries; for x = -100, 100, 1 do y = 4*math.pow(x,3) - x + 9 plotPointer:Add(x,y) end plotPointer:Update() </script>
Example 2
This example plots the equation 2sin(x) over the range -10 to 10. A smaller increments of 0.1 is used in the for-loop to ensure that the wave is plotted smoothly. The lineSegments draw mode is used to draw a dotted line.
You can copy this example into your document as-is.
<xyPlot name="newPlot"> <series name="mySeries" draw="lineSegments" manual="true" /> </xyPlot> <script> local x, y; local sinePlot = newPlot.mySeries; for x = -10, 10, 0.1 do y = 2*math.sin(x) sinePlot:Add(x,y) end sinePlot:Update() </script>
Example 3
It is possible to add points to a plot without explicitly defining the series in that plot.
This example plots three equations over the range of -10 to 10. Notice that the three series are not defined by name in the plot declaration, and instead defined as a plot attribute.
You can copy this example into your document as-is.
<xyPlot name="thisPlot" series="3" /> <script> for x = -10, 10, 0.1 do y1 = 2*math.pow(x,2) y2 = 0.5*math.pow(x,3) y3 = 0.25*math.pow(x,4) thisPlot.Series[1]:Add(x,y1) thisPlot.Series[2]:Add(x,y2) thisPlot.Series[3]:Add(x,y3) end </script>