How to add an empty graph
You can add a 2D/3D Graph from the Insert
item in the menu bar:
Insert > Plot > 2D / 3D
Keyboard shortcut: a 2D Graph can be added directly typing @
Now an empty graph will be added:
Variables to plot equations must be:
NOTE: variables are case sensitive (x is different from X)
You have multiple ways to plot equations:
Directly from the plot window
Indirectly, building your equation outside the plot window
You can plot figures from matrices
(directly or indirectly):
- 2 columns matrices for 2D plots
- 3 columns matrices for 3D plots
You can plot multiple equations/matrices on the same graph using the Multiple values item
on the Functions toolbox
Each "value" will be colored differently (cycling between 6 colours, in the following order: blue, red, green, magenta, orange and brown)
Special plots (words, points, colors...)
You can plot words or characters (strings) on your 2D graphs;
- Special characters (case sensitive) have position fixed on center on the given coordinates: + . * o x;
- Words, phrases or non-special characters have top-left corner of (virtual) textbox fixed on the given coordinates;
- Size and color columns are not required (so you can use a 3, 4 or 5 columns matrix);
- Values of size column are absolute, so the resize action does not affect the appearance of special plots;
- Many colors are allowed, using web format (like "#6699CC" or "#FF6699CC") or by name; here is a complete list of possible colors:
aliceblue, antiquewhite, aqua, aquamarine, azure,
beige, bisque, blanchedalmond, black, blue, blueviolet, brown, burlywood,
cadetblue, chartreuse, chocolate, coral, cornflowerblue, cornsilk, crimson, cyan,
darkblue, darkcyan, darkgoldenrod, darkgray, darkgreen, darkkhaki, darkmagenta, darkolivegreen, darkorange, darkorchid, darkred,
darksalmon, darkseagreen, darkslateblue, darkslategray, darkturquoise, darkviolet, deeppink, deepskyblue, dimgray, dodgerblue,
firebrick, floralwhite, forestgreen, fuchsia,
gainsboro, ghostwhite, gold, goldenrod, gray, green, greenyellow,
indianred, indigo, ivory,
lavender, lavenderblush, lawngreen, lemonchiffon, lightblue, lightcoral, lightcyan, lightgoldenrodyellow, lightgray, lightgreen,
lightpink, lightsalmon, lightseagreen, lightskyblue, lightslategray, lightsteelblue, lightyellow, lime, limegreen, linen,
magenta, maroon, mediumaquamarine, mediumblue, mediumorchid, mediumpurple, mediumseagreen, mediumslateblue, mediumspringgreen,
mediumturquoise, mediumvioletred, midnightblue, mintcream, mistyrose, moccasin,
oldlace, olive, olivedrab, orange, orangered, orchid,
palegoldenrod, palegreen, paleturquoise, palevioletred, papayawhip, peachpuff, peru, pink, plum, powderblue, purple,
red, rosybrown, royalblue,
saddlebrown, salmon, sandybrown, seagreen, seashell, sienna, silver, skyblue, slateblue, slategray, snow, springgreen, steelblue,
tan, teal, thistle, tomato, turquoise,
wheat, white, whitesmoke,
NOTE: You can use darkblue, DarkBlue, Dark Blue (recommended), DARKBLUE, D a R k B l U e ant etc...
all spaces will be removed and color name will be converted to lower case chars.
NOTE: web colors are allowed both in hexadecimal RGB ("#RRGGBB") or hexadecimal aRGB ("#aaRRGGBB") format.
NOTE: You can use number instead of color name or web-color.
Number composing rule is a bit complex, but it is similar with web-colors: color represented as a hexadecimal number where
- first pair is opacity;
- second pair is a Red Component;
- third pair is a Green Component;
- fourth pair is a Blue Component;
For example FF00FF00 is a full-opacity Green color (FF 00 FF 00).
When you have a hexadecimal number you need to convert it to decimal number to use it in SMath Studio.
There are snippets to make easy this conversion (see References).
Note that because of the maximum 32-bit integer is 2147483647 (0xFFFFFFFF/2) and FF00FF00 = 4278255360 (i.e. greater then the max. integer),
then Green is FF00FF00-0xFFFFFFFF-1=-16711936.
If you want to define a plot inside a specified domain you can follow two ways:
Using an if/else statement
NOTE: Any text (empty or not) or message from the error function will be ignored.
Using booleans as function parameters
NOTE: infinite values will be ignored.
Plot vectors by index
It is possible to plot a single column vector using as index the x variable.
In the plot any x value will be rounded and, if possible, the corresponding vector element will be used as y value:
It is possible to use units of measurement inside plots.
Because the output units of calculations are base units (f.e. meters for any length unit), you have to scale the input or adjust the viewport.
A dedicated plot palette allow some operations on the graph.
- Rotate: rotate 3D graphs (see Known issues).
- Scale: if you roll your mouse wheel it zooms both axes together. If you hold 'control' keyboard key (CTRL) at the same time it just zooms the vertical axis;
if you use the mouse wheel holding the 'shift' keyboard key (↑) it zooms the horizontal axis. This does not affect the appearance of special plots.
- Move: drag the graph up or down, left or right; by default you can move the graph also by clicking and holding the left mouse button on the graph.
- Graph by points: show functions/straight lines as a set of points; could be useful to highlight discontinuities.
- Graph by lines: show functions/straight lines as lines (default).
- Refresh: restore the default view of the graph (axes origin moved to the graph center and zoom with default limits).
Clicking with the right mouse button on the graph appears a context menu that contains other options.
|to inform the developers about issues you found out use the forum: bugs&problems|
There are several main known issues about graphs:
- grids are available in power of two only;
- axes limits are available by mouse wheel only;
- 3D plots loose alignments opening the worksheet;
- 3D coordinates are left-handed;
- SMath 0.78 (stable): Added ability to Zoom graphs by mouse wheel;
- SMath 0.82.3477 (stable): Added ability to plot multiple graphs on the canvas (2D & 3D): multiple Graphs can be specified by functions or/and points at the same time; +/- and -/+ operators also can be used; 2D Graphs now can be inserted into the page by pressing "@" symbol;
- SMath 0.85 (stable): Added ability to separately change axis scale factor on 2D graphs using Ctrl/Shift + Mouse Wheel;
- SMath 0.89.8 (Beta): Added ability to draw text and special characters on the 2D Plot Control canvas;
- SMath 0.90 (stable): Graph animation implemented; Plot 2D and Plot 3D buttons removed from the math toolbar panel;
- SMath 0.94 (stable): Added support for colors specifying for the special objects and strings into the Plot Region using web format (like "#6699CC");
Tutorials and examples:
Color snippets (to help with color handling):