57 KiB
User manual
Welcome to LogarithmPlotter's user manual. Here, we'll cover most features of LogarithmPlotter and how to use them.
Introduction: How LogarithmPlotter works
LogarithmPlotter is a software to create plots and graphs with a logarithmic scale, the most well known kind being Bode plots, which LogarithmPlotter helps create in asymptotic form. While logarithmic scales in the primary interest of LogarithmPlotter, LogarithmPlotter also supports non logarithmic scales, which may be required to use certain features.
To do that, LogarithmPlotter uses a system called Objects, which may seem familiar to you if you have used other plotting software like Geogebra.
An "object" is anything that can be reprensented on the graph. LogarithmPlotter allows you to create 9 types of objects:
Icon | Type | Works well in logarithmic scale | Works well in non logarithmic scale | Allows pointer positioning | Comment |
---|---|---|---|---|---|
Points | ✓ | ✓ | ✓ | ||
Texts | ✓ | ✓ | ✓ | Used as additional labels if necessary | |
Functions | ✓ | ✓ | X | ||
Bode Magnitudes | ✓ | X | X | ||
Bode Phases | ✓ | X | |||
X Cursors | ✓ | ✓ | ✓ | Cursors on the x-axis | |
Sequences | X | ✓ | X | There are several performance issues on the logarithmic scale related to having to calculate far to many values. You should use functions defined on N as a substitute if possible. |
|
Distributions | ✓ | ✓ | X |
LogarithmPlotter will also create it's own objects automaticly when needed (for example, the sums of the bode gains and phases).
The Interface
First start
When LogarithmPlotter starts for the first time or when it's been updated, you will be greeted by a screen similar to this one. It allows you to see the changelog, as well as configure the global options of LogarithmPlotter.
- "Check for updates on startup" does exactly what it sounds like. If enabled, LogarithmPlotter will check if a new version has been released everytime it starts up.
- "Reset redo start when a new action is added to history": if disabled, if you go to a previous section of the history and make a change, the more recent changes in the redo section won't be overwritten.
Note that all of those settings can be changed at any moment from the "Settings" menu at the top of the window.
Overview of the main interface
The main interface of LogarithmPlotter is divided into 2 sections, the side bar on the left, and the graph on the right.
The sidebar allows you to modify the diagram and interact with objects while the graph is where you see your changes and objects applied.
The sidebar is composed of 3 tabs: Objects, Settings and History each of which will be explained in sections below.
Objects tab
The Object tab allows you to interact, create and delete with the objects of the graph.
It is composed of two parts, the objects lists, and the object creation grid.
To create an object, you can click one of the buttons at the bottom of the tab, and it will open a object property editor for that object.
You can reopen it at any time by clicking on the row associated with the object you want to edit.
On that row, you can:
- Show or hide the object, by clicking the □ checkbox at the beginning.
- (On objects that can be repositionned) Reposition the object by clicking on the button.
- Delete the object using the button.
- Change the color of the object by clicking on the colored circle at the end of the line.
Settings tab
The Settings tab allows you to change how the diagram looks, and parameter the axes properly. It also features a few buttons you can also find in the menu bar.
List of settings:
Icon | Name | Default value | Definition |
---|---|---|---|
X Zoom | 100 |
The zoom alongside the x-axis.
|
|
Y Zoom | 10 | The zoom alongside the ordinate, equivalent to the number of pixels for a unit of 1. | |
Min X | 0.5 | Minimum value to be drawn on the x-axis. In other words, it's the value of x on the left side of the graph. | |
Max Y | 25 | Maximum value to be drawn on the y-axis. In other words, it's the value of y at the bottom of the graph. | |
Max X | Variable |
Minimum value to be drawn on the x-axis. In other words, it's the value of x on the right side of the graph.
|
|
Min Y | Variable |
Minimum value to be drawn on the y-axis. In other words, it's the value of y at the top of the graph.
|
|
X Axis Step | 4 |
Step of the graduation for the x-axis.
|
|
Y Axis Step | 4 |
Step of the graduation for the y-axis.
|
|
Line width | 1 |
Width (percentage) of the the lines and circles of objects shown on the graph.
|
|
Text size (px) | 14 | Size in pixel of the text shown on the graph. | |
X Label | Empty |
Label to be used on the x-axis.
|
|
Y Label | Empty |
Label to be used on the y-axis.
|
|
X Log Scale | ✓ | When checked, the x-axis is represented with a logarithmic scale, otherwise, it's represented with a non logarithmic scale. | |
Show X graduation | ✓ | When checked, will show the labels alongside the x-axis (10¹, 10², ... or 4, 8, ...). Otherwise, they will be hidden. | |
Show Y graduation | ✓ | When checked, will show the labels alongside the y-axis (0, 4, ...). Otherwise, they will be hidden. |
List of the buttons:
- Copy to clipboard:
- Copies an image of the graph to the clipboard.
- Save plot:
- Saves the plot in the currently opened file, or prompts you to pick a location if non are open...
- Save plot as:
- Prompts you to choose a location to save the plot at, and saves it.
- Load plot/Open plot:
- Prompts you to choose an existing LogarithmPlotter diagram file and opens it in the current window.
- IMPORTANT: All unsaved changes to the previous diagram WILL BE LOST if you open a new one.
History tab
The history tab allows you to see the historical progression of graph broken down in "actions" pretaining to objects. The list in itself is read from top to bottom, from most recent to most ancient.
The "Now" represents the point in history in which the graph is.
Any action that happened before now are in the "Undo" section of the history, under the "Now". Similarly, the actions that happened after the now are in the "Redo" scection, above the "Now".
Note: You can hover the actions with your mouse to see more details about them.
If you want to undo/redo any action, click on it and it will undo/redo it after undoing/redoing the action in between them and the now.
There exists 7 types of actions:
Symbol | Type | Occurance | Color (Light|Dark theme) |
---|---|---|---|
Object creation | When a new object is created | ||
Object deletion | When an existing object is deletion | ||
Show/hide object | When an object's is shown or hidden | , | |
Modify object | When an object's property is changed | ||
Rename object | When an object's name is changed | ||
Coloring the object | When an object's color is changed |
You can also filter the actions of the history by using the "Filter..." search bar.
Note: The changes in the settings tab are not kept in the history tab. This feature may come to a future version of LogarithmPlotter.
Editing object properties
Introduction
Each object (as seen in chapter 0) has properties, which are the core of the customisability of objects. There exists many different kind of properties for different things, like naming objects, the position of points, the expression and domains of functions...
When creating an object, or when clicking on it on the object list, you open the Object Property Editor dialog.
Example dialog for a distribution
This dialog contains all of the properties of the object that can be modified. Each property is updated in real time. You can drag the dialog away to see the consequences of your changes on the graph.
That dialog can be closed by either closing the window or clicking the "OK" button. Both these options save all changes done.
Type of properties
There exists a lot of properties, but each of them are separated in different kinds.
Type | Editor | Example(s) | Comment |
---|---|---|---|
Strings | Inline text input | Object name | At the end of the input, the little "α" button allows to enter symbols (greek letters, and indices or supscripts letters and numbers). |
Numbers (integers and decimals) | Inline text input | Label position | All inputs other than digits, one optional minus at the start and a dot in the middle are forbidden. |
Expressions | Inline text input | Point position, function expression | Like strings, they have the symbol character input dialog. You can use values like e or pi (can also be noted π) in it. |
Domains & ranges (sets) | Inline text input | Function domain and range | Use symbolic expressions (e.g R+* will translate to ℝ⁺*, the strictly positive integer set), ranges (e.g ]0;1[) or even sets (e.g {0;3;4}). |
Booleans (true or false) | Checkbox | Show graduation on ω0 for Bode Magnitude | |
Enumerations (set of predefined values) | Combo box | Label position and content, point style, bode pass | |
Other objects | Combo box | Bode's ω0, X Cursor's target objects. | Contains a list of all objects created in required type, and allows to create a new one if needed. X Cursor target object is an exception as it can target several different types of objects. |
Lists (lists of values) | List of inline text inputs | Unused at the moment | Sometimes allows the creation of values, at other the number of values is constant. |
Dictionaries (list of values associated with another value) | List of lines having two text inputs separated by text | Sequence expression and default values, distribution default values | Sometimes allows the creation of values, at other the number of values is constant. |
There can also be comments and notes in between properties to explain the specialities of certain non intuitive properties.
Object properties
The following section is a reference for all object properties. It's currently up to date with LogarithmPlotter v0.1.8.
Reference:
- All objects
- Points
- Texts
- Functions
- Bode magnitudes
- Bode magnitudes sum
- Bode phases
- Bode phases sum
- X Cursors
- Sequences
- Distributions
For all objects
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
Name | string | It must not be the same for two objects. | This value represents the object. | |
Label content | Enumeration |
|
It's generally used with a positioning property (Label position or Label's X position). |
Points
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
X | Expression | Default: 1 | Position of the point on the x-axis. | |
Y | Expression | Default: 0 | Position of the point on the y-axis. | |
Label position | Enumeration |
|
Position of the label relative to the point. | |
Point style | Enumeration |
|
Visual style of the point representation. |
Texts
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
X | Expression | Default: 1 | Position of the text on the x-axis. | |
Y | Expression | Default: 0 | Position of the text on the y-axis. | |
Label position | Enumeration |
|
Position of the label relative to the position. | |
Content | string | Default: New text | Content of the text item. |
Functions
Icon | Property | Type | Value | Comment | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Expression | Expression | Default: x | Expression of the function (depending on variable x). | |||||||||
Domain | Domain | Default: ℝ⁺* | Domain (definition range) of the function. | |||||||||
Range | Domain | Default: ℝ | Range (destination range) of the function. | |||||||||
Label position | Enumeration |
|
Position of the label relative to the position. | |||||||||
Display mode | Enumeration |
|
Display style of the function's label. | |||||||||
Label's X position | number | Default: 1 | Base position for the label of the function based on the specified x-axis position and it's corresponding y-axis of the function. | |||||||||
Show points | boolean | True or false Default: true |
When using a non continous domain (for example ℕ, ℤ, sets like {0;3}) the function can be displayed using points at the points where the function is defined. Unticking this hides the points. | |||||||||
Show dashed lines | boolean | True or false Default: true |
When using a non continous domain (for example ℕ, ℤ, sets like {0;3}) the function can be displayed dashed lines between at the points where the function is defined. Unticking this hides the dashed lines. |
Bode Magnitude
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
ω0 | Point | By default, a newly created point prefixed by ω in (1,0). | Used as the base for the beginning/end of the transitional side of the bode magnitude as well. | |
Pass | Enumeration |
|
Type of bode magnitude pass used for this this object. | |
Gain | Expression | Default: 20 | Amount of decibels per decade used for the bode gain (should be positive for high pass, and negative for low pass). | |
Label position | Enumeration |
|
Position of the label relative to the position. | |
Label's X position | number | Default: 1 | Base position for the label of the function based on the specified x-axis position and it's corresponding y-axis on the function. | |
Show graduation on ω0 | boolean | True or false Default: false |
When ticked, will show a vertical dashed line on top of the assigned ω0. |
Bode Magnitudes Sum
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
Label position | Enumeration |
|
Position of the label relative to the position. | |
Label's X position | number | Default: 1 | Base position for the label of the bode magnitude based on the specified x-axis position and it's corresponding y-axis of the bode magnitude. |
Bode Phases
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
ω0 | Point | By default, a newly created point prefixed by ω in (1,0). | Used as the base for the beginning/end of the transitional side of the bode phase as well. | |
Phase | Expression | Default: 90 | Amount of phase (defined in the unit below) used for the bode phase. | |
Unit to use | Enumeration |
|
Unit of the phase to be used (used for display). | |
Label position | Enumeration |
|
Position of the label relative to the position. | |
Label's X position | number | Default: 1 | Base position for the label of the function based on the specified x-axis position and it's corresponding y-axis on the function. |
Bode Phases Sum
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
Label position | Enumeration |
|
Position of the label relative to the position. | |
Label's X position | number | Default: 1 | Base position for the label of the bode phase based on the specified x-axis position and it's corresponding y-axis of the bode phase. |
X Cursors
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
X | Expression | Default: 1 | Position of the cursor on the x-axis. | |
Object to target | Executable object* | Default: no object is selected. |
Target object of which to show the value of through the X Cursor. *Executable objects are objects which take values all along the x-axis with a corresponding y-axis value. Functions, bode magnitudes and phases, sequences and distributions qualify as such. |
|
Label position | Enumeration |
|
Position of the label relative to the position. | |
Show approximate value | boolean | True or false Default: true |
When ticked, will show an approximate version of the value of the targeted object at a the given x next to the value of the simplified expression. | |
Rounding | number | Default: 3 | Rounding of the approximate value. | |
Display style | Enumeration |
|
Style of the vertical bar of the cursor. | |
Target's value position | Enumeration |
|
Position of the target's value on the x cursor. When using "Next to target", it will be at the intersection between the target and the cursor vertical bar, while "With label" puts it just below the name of the cursor and it's position. |
Sequences
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
Show points | boolean | True or false Default: true |
Sequences are be displayed using points at each integer the points where the sequence is defined. Unticking this hides the points. | |
Show dashed lines | boolean | True or false Default: true |
Sequences are displayed dashed lines between at the points where the sequence is defined. Unticking this hides the dashed lines. | |
Default expression | Dictionary (fixed length at 1, key is a number, value an expression) | var[n+k] = expression Default: var=u, k=1, expression=n u[n+1] = n |
Note: The expression is being defined through the n variable. You can use the array-syntax to access previous value. For example, for the variable u, you can define u[n+1] depending on u[n] or u[n+2] depending on u[n] and u[n+1] for recursive definition. | |
Initialisation values | Dictionary (key is a number, value an expression | var[k] = expr Default: var=u, k=0, expr=1 u[0] = 1 |
Note: You need as many initialisation values (which can be added through the "Add entry button" and removed with the trash buttons) as k. | |
Label position | Enumeration |
|
Position of the label relative to the position. | |
Label's X position | number | Default: 1 | Base position for the label of the sequence based on the specified x-axis position (integer) and it's corresponding y-axis of the sequence. |
Distributions
Icon | Property | Type | Value | Comment |
---|---|---|---|---|
Label position | Enumeration |
|
Position of the label relative to the position. | |
Label's X position | number | Default: 1 | Base position for the label of the distribution based on the specified x-axis position and it's corresponding y-axis of the distribution. | |
Probabilities list | Dictionary (key is a number, value an number) | P(var=k) = value Default: var=X, k=0, expr=1 P(X=0) = 0 |
Note: You need as many probabilities as needed (which can be added through the "Add entry button" and removed with the trash buttons) as k. The displayed graph will be the distribution function. |
Positioning objects
Several objects that rely on position can be placed on the graph with your mouse using the "Positioning" interface. This interface can be accessed using the button that can be seen on certain object rows.
List of supported objects:
- Points
- Texts
- X Cursors¹
Click on the desired location to apply it to the selected object.
¹ Note: X Cursor only allow for X positioning so you will only see the vertical bar associated with it.
Settings
There are two settings available on the interface:
The "Pointer precision" setting allow you to set the amount of digits of precision of the cursor. For example, a pointer with a precision digit of 2
will round all pointed position to 2
digits after the decimal point. Setting a precision to 0
will tound all positions to integers.
The "Snap to grid" checkbox rounds the selected position to the nearest intersection of the grid. It's useful for logarithmic scales when you want to quicly select a rounded logarithmic location at a few hundreds or thousands.