The graphical user interface

The graphical user interface or GUI for Sympathy for Data is the main interface, where you can create, edit and run workflows.

In the main interface of Sympathy for Data a number of smaller windows can be displayed, where each of these windows have their own functionality. When Sympathy for Data is started two of these windows will be displayed, the workspace window and the node library window. These two windows are vital for the construction of the workflows, the functionalities of the other windows are more informative.

All windows, except the workspace window, can be turned on/off from the View menu.

A screenshot of the start view below of Sympathy for Data is visualized. In this screenshot the workspace window and the node library window are located to the right and the left, respectively.

Startup view of the main window in `Sympathy for Data`.

Screenshot of the startup view of the main window in Sympathy for Data.

The node library window

It is through the node library window that you get access to the nodes, the building blocks of the data analysis workflows. The nodes are stored in a tree structure and are categorized by their functionalities. The nodes are added to the flow with drag and drop.

There are two ways of getting more information about a node in the library window. Brief information, consisting of a short description and a declaration of the incoming and outgoing data types, is displayed in a tooltip when resting the cursor over a node in the library view. The more detailed documentation is accessed by right clicking on the node and selecting “Help”. A web browser will open to display the node documentation. Documentation for all nodes in the library can also be found here.

It’s possible to add new node libraries to the node library window. These are generally referred to as third-party libraries.

Error window

The so called Error window actually fulfils a bigger role that its name suggests. All output from nodes ends up here, be it errors, warnings or simple notices.

When a node has something to say it will add a single row to the Error window. This summary line consists of the nodes label in the node column and a summary of the output in the details column. If you click on the arrowhead to the left of the node label the row will expand and show more details.

You can right-click anywhere in the Node column and choose Clear to remove any old content from this view and more easily notice new output.

There are four different severities in the output, ranging from least to most severe:

Output
Informative non-crucial output that doesn’t affect the nodes ability to complete its task.
Warnings
A node will give you a warning when it suspects that something might be wrong, but it is still able to complete its task. You should usually take a look at any warnings and judge for yourself if some action needs to be taken.
Error
An unrecoverable error occurred during node execution. These errors are usually due to problems with either the nodes configuration or the data that it received. The details can sometimes give more information about how to fix the problem.
Exception

Like the Error level this also represents some unrecoverable error during node execution. The difference is that an exception is some kind of error that the node developer hasn’t anticipated. Sometimes these errors can be fixed simply by fixing some problem with the configuration or input data, but it can also be that there is some problem that needs to be fixed in the source code for the node.

A good quality node should in principle never give exceptions. You should consider reporting any exceptions you see to the node developer. The details for an exception will provide a stack trace which gives information to the node developer about where in the code the error arose.

If a node produced output at several different levels of severity only the most severe part can be seen in the summary line, but expanding the row by clicking on the arrowhead will let you see the full output of the node.

Undo stack

The undo stack shows all historical operations preformed in the active workflow. Each operation (create node, move node, delete node, connect nodes etc.) is represented by a row in the undo stack with new operations being added at the bottom. If you select a specific row Sympathy will undo all operations below the selected row, effectively jumping to a point in time just after the selected operation was performed.

Data viewer

The data viewer shipped with Sympathy for Data allows easy and fast inspection of the data stored in the different data types. It can be either called directly from within Sympathy for Data by double clicking an output port of any executed node or by launching it from the command line as described in the launch options.

Data viewer for tables.

Screenshot of the Data viewer with activated plot.

Preview Table

The appearance of the Data viewer varies depending on the loaded data type. In the tables view a list of available tables is shown on the very left. Selecting different items of the list will bring the selected table data into the table preview. The preview table has a toolbar with four fields:

  • The search box allows a quick search of the column names. For further explanation of the functionality, see below.
  • The document icon toggles between a view of the table’s data and its attributes. In case there are no attributes, this view will be empty.
  • The three color circle icon toggles the data type background coloring in the data table view on/off. This also toggles the color legend on/off on the bottom right of the preview table.
  • The graph icon toggles the plot view on/off.
Data viewer preview table toolbar.

Screenshot of the preview table toolbar showing the searchbar and toggle buttons.

The preview table also has a right-click context menu allowing to quickly selecting column to plot as either x (Plot as x) or y (Plot as y) signal. Multiple columns can be plotted against the same x signal. Show histogram will show a histogram together with some basic statistics of the selected column:

  • mean value
  • standard deviation
  • number of nan values in the column

The number of rows and columns (row x column) is shown in a little box on the bottom left of the preview table.

Note

Due to limitations of the underlying GUI framework, tables with more then 71‘582‘788 rows will be truncated. This will be shown with a line in red: Data truncated. This does not influence the plotting capability of large data.

Plot

The plot has two toolbars, one above and one below the plot area. The one above allows to change the following parameters:

X
Specifies the column used for the x axis.
Y
Specifies the columns plotted as y-values. Multi-selection is allowed. Un/checking a column will remove or add it to the plot.
Histogram
Specifies the column used to plot the histogram and compute some statistics about it in an inset. [initially hidden]
Plot settings

Popup menu with configurable settings for.

Resample
This integer value specifies the step size used for resampling in case the upper limit of 10000 points is exceeded. This value will be automatically updated on data refresh.
Plot large data
In case of large data columns, >10 million rows, plotting will be disabled by default and needs to be activated by this checkbox. This checkbox is hidden for data sets not exceeding this limit.
Binning
Selecting the number of bins used for the histogram. Hidden in Line plot mode.
Line graph
Sets the plot to a scatter plot of the selected x and y columns.
Histogram graph
Set the plot to a histogram using the last selected/active column in the Y selector. Selecting the histogram plot will hide the X and Y selection boxes and shows the histogram selection box.

The toolbar below the plot area allows for easy zooming, panning and moving through the zoom/pan state history. It also has the option to save the current figure (Save icon) and alter the appearance of the lines or scatters of the plotted data (checkbox icon).

Warning

Plotting large amounts of rows and several columns can result in slow plotting and the GUI might become unresponsive.