Graphs

Index


Edit

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

add new graph

Keyboard shortcut: a 2D Graph can be added directly typing @

Now an empty graph will be added:

empty graphs


Edit

Plot equations

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

single equation - direct input

Indirectly, building your equation outside the plot window

single equation - indirect input


Edit

Plot matrices

You can plot figures from matrices (directly or indirectly):



single equation - matrices


Edit

Multiple plots

You can plot multiple equations/matrices on the same graph using the Multiple values item on the Functions toolbox:

multiple equations/matrices - example

Each "value" will be colored differently (cycling between 6 colours, in the following order: blue, red, green, magenta, orange and brown)

multiple equations/matrices - colours


Edit

Special plots (words, points, colors...)

You can plot words or characters (strings) on your 2D graphs;

special plots






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,

honeydew, hotpink,

indianred, indigo, ivory,

khaki,

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,

navajowhite, navy,

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,

violet,

wheat, white, whitesmoke,

yellow, yellowgreen

colors

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.

colors
colors
colors

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.


Edit

Animated plots

See animations

animated plot


Edit

Plot domains

If you want to define a plot inside a specified domain you can follow two ways:

Using an if/else statement

single equation - direct input

NOTE: Any text (empty or not) or message from the error function will be ignored.

Using booleans as function parameters

single equation - indirect input

NOTE: infinite values will be ignored.


Edit

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:

plot by index


Edit

Units

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.

plot using units


Edit

Plot handling

A dedicated plot palette allow some operations on the graph.

plot handling - palette
  1. Rotate: rotate 3D graphs (see Known issues).
  2. 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.
  3. 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.
  4. Graph by points: show functions/straight lines as a set of points; could be useful to highlight discontinuities.
  5. Graph by lines: show functions/straight lines as lines (default).
  6. 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.

plot handling - context menu


Edit

Known issues

to inform the developers about issues you found out use the Issues Tracker or the forum: Bugs & Problems

There are several main known issues about graphs:

Edit

History



Edit

See also



Edit

References

Tutorials and examples:
Color snippets (to help with color handling):