User manual

Welcome to LogarithmPlotter's user manual. Here, we'll cover most features of LogarithmPlotter and how to use them.

Online version

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
point symbol Points
text symbol Texts Used as additional labels if necessary
function symbol Functions X
bode magnitude symbol Bode Magnitudes X X
bode phase symbol Bode Phases X
x cursor symbol X Cursors Cursors on the x-axis
sequence symbol 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.
distribution symbol 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

Image of the first start screen of LogarithmPlotter

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.

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

Image of the main interface of LogarithmPlotter
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

Image of the objects tab in an example graph

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:

Settings tab

Image of the 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 icon X Zoom 100 The zoom alongside the x-axis.
  • For non logarithmic scales, the number of pixels for a unit of 1.
  • For logarithmic scales, represent one decade divided by 2.3.
Y Zoom icon Y Zoom 10 The zoom alongside the ordinate, equivalent to the number of pixels for a unit of 1.
Minimum X icon 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.
Maximum Y icon 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.
Maximum X icon 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.
  • This value is dynamic depending on the width of the LogarithmPlotter window as well as the x zoom you've chosen.
  • Setting this value will change the value of the x zoom to fit exactly to the specified dimensions.
Minimum Y icon 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.
  • This value is dynamic depending on the height of the LogarithmPlotter window as well as the y zoom you've chosen.
  • Setting this value will change the value of the y zoom to fit exactly to the specified dimensions.
X Axis Step icon X Axis Step 4 Step of the graduation for the x-axis.
  • Only for non logarithmic scale.
  • This value is an expression, you can use pi or e in it.
Y Axis Step icon Y Axis Step 4 Step of the graduation for the y-axis.
  • This value is an expression, you can use pi or e in it.
Line width icon Line width 1 Width (percentage) of the the lines and circles of objects shown on the graph.
  • For lines, it's directly the width of the line.
  • For circles, the diameters are 8 + 2 × line width.
Text size icon Text size (px) 14 Size in pixel of the text shown on the graph.
X Label icon X Label Empty Label to be used on the x-axis.
  • Example: "x", "ω (rad/s)"...
  • Editable, you can put any value you want, while maintaining an history of the previously used labels.
  • Note: this history is not saved with the file.
Y Label icon Y Label Empty Label to be used on the y-axis.
  • Example: "y", "Magnitude (dB)", "φ (°)", "φ (rad)", "φ (deg)"...
  • Editable, you can put any value you want, while maintaining an history of the previously used labels.
  • Note: this history is not saved with the file.
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:

History tab

Image of the 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)
plus sign Object creation When a new object is created lime/green
cross sign Object deletion When an existing object is deletion salmon/dark red
Eye sign Show/hide object When an object's is shown or hidden whitesmoke|darkgray, light gray/dim gray
Double arrow sign Modify object When an object's property is changed cyan/dark slate blue
Label sign Rename object When an object's name is changed orange/dark orange
Appearance sign Coloring the object When an object's color is changed plum/purple

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.

Image of 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:

For all objects

Icon Property Type Value Comment
label icon Name string It must not be the same for two objects. This value represents the object.
label icon Label content Enumeration
  • null: No label
  • name: Name of the object
  • name + value: Name of the object and it's value (generally in "name = value")
It's generally used with a positioning property (Label position or Label's X position).

Icon Points

Icon Property Type Value Comment
Position icon X Expression Default: 1 Position of the point on the x-axis.
Position icon Y Expression Default: 0 Position of the point on the y-axis.
All direction icon Label position Enumeration
  • ↑ Above
  • ↓ Below
  • ← Left
  • → Right
  • ↖ Above left
  • ↗ Above right
  • ↙ Below left
  • ↘ Below right
Default: ↑ Above
Position of the label relative to the point.
Appearance icon Point style Enumeration
Default: ●
Visual style of the point representation.

Icon Texts

Icon Property Type Value Comment
Position icon X Expression Default: 1 Position of the text on the x-axis.
Position icon Y Expression Default: 0 Position of the text on the y-axis.
All direction icon Label position Enumeration
  • >|< Center
  • ↑ Top
  • ↓ Bottom
  • ← Left
  • → Right
  • ↖ Top left
  • ↗ Top right
  • ↙ Bottom left
  • ↘ Bottom right
Default: >|< Center
Position of the label relative to the position.
Label icon Content string Default: New text Content of the text item.

Icon Functions

Icon Property Type Value Comment
Expression icon Expression Expression Default: x Expression of the function (depending on variable x).
Domain icon Domain Domain Default: ℝ⁺* Domain (definition range) of the function.
Range icon Range Domain Default: ℝ Range (destination range) of the function.
Arrows icon Label position Enumeration
  • ↑ Above
  • ↓ Below
  • ← Left
  • → Right
  • ↖ Above left
  • ↗ Above right
  • ↙ Below left
  • ↘ Below right
Default: ↑ Above
Position of the label relative to the position.
Appearance icon Display mode Enumeration
  • Application:
    name: domain range
    x expression
  • Function:
    name(x) = expression
Default: Application
Display style of the function's label.
Position icon 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.

Icon Bode Magnitude

Icon Property Type Value Comment
Angle icon ω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.
Bode pass icon Pass Enumeration
  • High
  • Low
Default: High
Type of bode magnitude pass used for this this object.
Gain icon 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).
Arrows icon Label position Enumeration
  • ↑ Above
  • ↓ Below
  • ← Left
  • → Right
  • ↖ Above left
  • ↗ Above right
  • ↙ Below left
  • ↘ Below right
Default: ↓ Below
Position of the label relative to the position.
Position icon 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.

Icon Bode Magnitudes Sum

Icon Property Type Value Comment
Arrows icon Label position Enumeration
  • ↑ Above
  • ↓ Below
  • ← Left
  • → Right
  • ↖ Above left
  • ↗ Above right
  • ↙ Below left
  • ↘ Below right
Default: ↑ Above
Position of the label relative to the position.
Position icon 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.

Icon Bode Phases

Icon Property Type Value Comment
Angle icon ω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.
Angle icon Phase Expression Default: 90 Amount of phase (defined in the unit below) used for the bode phase.
Angle icon Unit to use Enumeration
  • °
  • deg
  • rad
Default: °
Unit of the phase to be used (used for display).
Arrows icon Label position Enumeration
  • ↑ Above
  • ↓ Below
  • ← Left
  • → Right
  • ↖ Above left
  • ↗ Above right
  • ↙ Below left
  • ↘ Below right
Default: ↓ Below
Position of the label relative to the position.
Position icon 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.

Icon Bode Phases Sum

Icon Property Type Value Comment
Arrows icon Label position Enumeration
  • ↑ Above
  • ↓ Below
  • ← Left
  • → Right
  • ↖ Above left
  • ↗ Above right
  • ↙ Below left
  • ↘ Below right
Default: ↑ Above
Position of the label relative to the position.
Position icon 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.

Icon X Cursors

Icon Property Type Value Comment
Position icon X Expression Default: 1 Position of the cursor on the x-axis.
Target icon 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.
Arrows icon Label position Enumeration
  • ↑ Above
  • ↓ Below
  • ← Left
  • → Right
  • ↖ Above left
  • ↗ Above right
  • ↙ Below left
  • ↘ Below right
Default: ← Left
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 icon Rounding number Default: 3 Rounding of the approximate value.
Arrows icon Display style Enumeration
  •               
  •               
  • • • •
Default:               
Style of the vertical bar of the cursor.
Position icon Target's value position Enumeration
  • Next to target
  • With label
  • Hidden
Default: Next to target
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.

Icon 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.
Arrows icon Label position Enumeration
  • ↑ Above
  • ↓ Below
  • ← Left
  • → Right
  • ↖ Above left
  • ↗ Above right
  • ↙ Below left
  • ↘ Below right
Default: ← Left
Position of the label relative to the position.
Position icon 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.

Icon Distributions

Icon Property Type Value Comment
Arrows icon Label position Enumeration
  • ↑ Above
  • ↓ Below
  • ← Left
  • → Right
  • ↖ Above left
  • ↗ Above right
  • ↙ Below left
  • ↘ Below right
Default: ← Left
Position of the label relative to the position.
Position icon 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 Position icon button that can be seen on certain object rows.

List of supported objects:

Pointer interface screenshot

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.