Though the re-design of the homepage took quite a lot of time, we didn’t forget the actual development – the work in the code on the next release is in progress. In the next release we’ll incorporate the work done during GSoC2016 – support for the FITS-format and a theme manager will be added to the feature list of LabPlot. In addition to this, several data reduction algorithms, integration and differentiation of data will join the family of already available analysis functions in LabPlot. On the plotting part, breaking of axes is currently being worked on and we plan to release it soon, too.

]]>As already announced couple of days ago, starting with this release we provide **installers for Windows (32bit and 64bit)** in the download section of our homepage. The windows version is not as well tested and maybe not as mature as the linux version yet and we’ll spent more time in future to improve it. Any feedback from windows users is highly welcome here!

With this release me make the next step towards providing a powerful and user-friendly environment for data and visualization. Last summer Garvit Khatri worked during GSoC2015 on the integration of Cantor, a frontend for different open-source computer algebra systems (CAS). Now the user can perform calculations in his favorite (open-source) CAS directly in LabPlot, provided the corresponding CAS is installed, and do the final creation, layouting and editing of plots and curves and the navigation in the data (zooming, shifting, scaling) in the usuall LabPlot’s way within the same environment. LabPlot recognizes different CAS variables holding array-like data and allows to select them as the source for curves. So, instead of providing columns of a spreadsheet as the source for x- and y-data, the user provides the names of the corresponding CAS-variables.

Currently supported CAS data containers are Maxima lists and Python lists, tuples and NumPy arrays. The support for R and Octave vectors will follow in one of the next releases.

Let’s demonstrate the power of this combination with the help of three simple examples. In the first example we use Maxima to generate commonly used signal forms – square, triangle, sawtooth and rectified sine waves (“imperfect waves” because of the finite truncation used in the definitions):

In the second example we solve the differential equation of the forced Duffing oscillator, again with Maxima, and plot the trajectory, the phase space of the oscillator and the corresponding PoincarĂ© map with LabPlot to study the chaotic dynamics of the oszillator:

Python in combination with NumPy, SciPy, SymPy, etc. became in the scientific community a serious alternative to many other established commercial and open-source computer algebra systems. Thanks to the integration of Cantor, we can do the computation in the Python environment directly in LabPlot. In the example below we generate a signal, compute its Fourier transform and illustrate the effect of Blackman windowing on the Fourier transform. Contrary to this example, only the data is generated in python, the plots are done in LabPlot.

In this release with **greatly increased the number of analysis features**.

**Fourier transform** of the input data can be carried out in LabPlot now. There are 15 different window functions implemented and the user can decide which relevant value to calculate and to plot (amplitude, magnitude, phase, etc.). Similarly to the last example above carried out in Python, the screenshot below demonstrates the effect of three window functions where the calculation of the Fourier transform was done in LabPlot directly now:

For basic signal processing LabPlot provides **Fourier Filter** (or linear filter in the frequency domain). To remove unwanted frequencies in the input data such as noise or interfering signals, low-pass, high-pass, band-pass and band-reject filters of different types (Butterworth, Chebyshev I+II, Legendre, Bessel-Thomson) are available. The example below, inspired by this tutorial, shows the signal for “SOS” in Morse-code superimposed by a white noise across a wide range of frequencies. Fourier transform reveals a strong contribution of the actual signal frequency. A narrow band-pass filter positioned around this frequency helps to make the SOS-signal clearly visible:

Another technique (actually a “reformulation” of the low-pass filtering) to remove unwanted noise from the true signal is **smoothing**. LabPlot provides three methods to smooth the data – moving average, Savitzky-Golay and percentile filter methods. The behavior of these algorithms can be controlled by additional parameters like weighting, padding mode and polynom order (for Savitzky-Golay method only).

To **interpolate the data** LabPlot provides several types of interpolations methods (linear, polynom, splines of different types, piecewise cubic Hermite polynoms, etc.). To simplify the workflow for many different use-cases, the user can select what to evaluate and to plot on the interpolations points – function, first derivative, second derivative or the integral. The number of interpolation points can be automatically determined (5 times the number of points in the input data) or can be provided by the user explicitly.

More new analysis features and the extension of the already available feature set will come in the next releases.

Couple of smaller features and improvements were added. The **calculation of many statistical quantities** was implemented for columns and rows in LabPlot’s data containers (spreadsheet and matrix):

Furthermore,** the content of the data containers can be exported to LaTeX tables**. The appearance of the final LaTeX output can be controlled via several options in the export dialog.

To further improve the usability of the application, we implemented **filter and search capabilities** in the drop down box for the selection of data sources. In projects with large number of data sets it’s much easier and faster now to find and to use the proper data set for the curves in plots.

A new small **widget for taking notes** was implemented. With this, user’s comments and notes on the current activities in the the project can be stored in the same project file:

To perform better on a large number of data points, we implemented the **double-buffering for curves**. Currently, applying this technique in our code worsens the quality of the plotted curves a bit. We decided to introduce a configuration parameter to control this behavior during the run-time. On default, the double buffering is used and the user benefits from the much better performance. Users who need the best quality should switch off this parameter in the application settings dialog. We’ll fix this problem in future.

The second performance improvement coming in version 2.3.0 is the much **faster generation of random values in the spreadsheet**.

There are still many features in our development pipeline, couple of them being currently already worked on. Apart from this, this summer again we get contribution from three “Google Summer of Code” students working on the support for FITS, on a theme manager for plots and on histograms.

You can count on many new cool features in the near future!

]]>

On the screenshot (taken on Windows7) you see also some new features like “Fourier transformation” and “Fourier Filter” – more on this later. Starting with the next release, v2.3.0, we’ll provide

While porting LabPlot to Windows we benefited a lot from the community and the experience of other KDE projects. Bringing KDE Software to other platforms like Windows, OSX and Android was the main topic during this year meeting of KDE developers in Randa, Switzerland. If you like KDE, if you like LabPlot and if you wish to see more KDE applications running on different platforms, please consider supporting our Randa Meetings 2016 Fundraiser Campaign!

The main new feature of this release is a new tool that allows you to easily extract data from image files – **Datapicker**. This tool was contributed by Ankit Wagadre during GSoC2015, s.a. his final report, who continued to work on this tool even after the summer program was over.

The process of data extraction consists mainly out of the following steps:

- Import an image containing plots and curves where you want to read the data points from
- Select the plot type (cartesian, polar, etc.)
- Select tree reference points and provide values for them. With the help of these points the logical coordinate system is determined.
- Create a new datapicker curve and set the type of the error bars
- Switch to the mouse mode “Set Curve Points” and start selecting points on the imported image – the coordinates for the selected points are determined and added to the spreadhseet “Data”

It is possible to add more then one datapicker curve. This is useful in case the imported image contains several curves that need to be digitized. The datapicker curve that is currently being selected in the *Project Explorer * is the “active” one – points clicked on the datapicker image will be calculated and added to its data spreadhseet. Calculated values are stored in different columns in data spreadsheets in the datapicker. These columns behave exactly the same like other columns in usual spreadsheets and can be directly used as source columns for curves in your own plots.

Datapicker supports the process of the data extraction with several helpers. To place the points more precisely, a magnification glass with different magnification levels is available. Also, the last selected point can be shifted with the help of the navigation keys. Furthermore, when reading data points having error bars, datapicker automatically creates bars indicating the end points of the error bars. Those bars can be pulled with the mouse until the required length (the distance to the data point) is reached.

The procedure for the extraction of data from an imported plot as described above is feasible when dealing with a limited number of points. In case the curves in the imported image are given as solid lines, the datapicker tool in LabPlot; allows to read them (semi-)automatically. For this, after a new datapicker curve was added as described above, switch to the mouse mode “Select Curve Segments”. The curves on the plot are recognized and highlighted. By clicking on a highlighted curve (or one of its segments), points along this curve are created. The length of a segment and the density of created points (separation between two points) are adjustable parameters.

In many cases the plot is not as simple as above (single black curve on white background) and contains grid lines, many curves of different color and thinness and a non-white background. In such a case the automatic detection fails (too many or no objects are highlighted). To help the datapicker to determine the curve(s) correctly, the user has to limit the allowed ranges in the HSV (or HSI) colour spaces. To subtract the non-white background it is possible to limit the range for the foreground colour, too. Internally, each pixel of the image is converted to black and white where only the points fitting into the user-defined ranges for hue, saturation, value, intensity and foreground are set to black.

In the screenshots below, the blue curves in the original image were projected onto by having appropriately reduced the allowed ranges in the colour space (note the peak for blue in the histogram for the hue). The transformed black and white image contains only the curves the user is interested in and it is now an easy task for the datapicker to determine the curves and to place points on them.

As another new feature in this release a new ** custom point **was implemented which allows the user to add a symbol to the plot at user-defined position, see the screenshot below:

Such a point can be moved freely around the plot area with the mouse or by directly specifying it’s coordinates in the corresponding dock widget.

**LabPlot accepts now drag&drop-events**. You can drag the file you want to import from your file manager and drop it on LabPlot – the import dialog will pop up and you can proceed importing the data as usual.

Finally, some **speed-up in the rendering of the image view of the matrix** was achieved by utilizing the multi-threading and the **support for GSL 2.x** was added. The release also includes several bug fixes, the details for them can be found in the ChangeLog-file.

Starting with this release we’ll provide two versions of LabPlot – the first based on KDE4-libs and the second based on KDE Frameworks 5 (KF5).

For the next release we plan to finish and to integrate the code written during GSoC2015. For more information on the features to be expected in the next release(s) see the following blogs:

http://datapicker.blogspot.com/2015/08/datapicker-for-labplot-gsoc-project.html

http://garvitdelhi.blogspot.com/2015/08/final-evaluation.html

https://minh.fedorapeople.org/2015/08/21/gsoc-last-report.html

Only smaller improvements and fixes will be added in addition to the main features described in the blogs mentioned above.

]]>**Today we want to announce the release candidate for v2.1.0**. We’ll spend the next couple of days with testing and polishment. No additional features will be implemented during this time. If no bigger issues will be found, we’ll release v2.1.0 soon. The source code of the release candidate is available here. Everybody is welcome to test and to provide any kind of feedback on the new functionality we’re going to describe shortly in the following.

**Matrix:**

For **handling of matrix-like data** we introduced a new data container. This matrix data container is presented like a table or, alternatively, as a two-dimensional greyscale image. The elements of such a table/matrix can be thought as being the Z-values, Z=Z(X,Y), with X and Y values being the row and column numbers, respectively. The transition from the row and column numbers to the logical coordinates is done via an explicit user-defined mapping of both worlds.

The most prominent application of such a data container one can think of is plotting of 3D-data. So, this new functionality can be regarded as one of the preparation steps towards 3D-plotting in LabPlot. More on this in Minh’s recent blog.

The matrix data can either be entered manually or via an import from an external file. Similar to the data generation for a column in a spreadsheet, the matrix can be filled with constant values or via a formula, too. The screenshot below shows the image view of a matrix together with the formula that was used to generate the matrix elements:

**Spreadsheet:**

The **handling and generation of data in the spreadsheet** also got some attention. New operations on columns in the spreadsheet were implemented – **reverse, drop and mask values**. When specifying which values to drop or to mask, several operators (“equal to”, “greater then”, “lesser then”, etc.) are available. These operations can help to remove (or to hide) some outliers in the data set prior to, e.g., performing a fit to this data set.

Furthermore, the generation of new data via a mathematical expression in spreadsheet was extended to support **multiple variables**. Now it is possible to define a multivariant function and to provide a data set (a column in a spreadsheet) for each of the variables. The corresponding dialog supports the creation of arbitrary number of variables.

Formula used to generate the values in the column, the names of the variables and the provided columns for each of the parameters are saved and can be changed in the formula dialog afterwords again, if required.

**Workbook:**

To help the user to better organize and to group different data containers (*Spreadsheet* and *Matrix*) we introduced * a new object Workbook*. This object serves as the parent container for multiple

**Data Import:**

Import of external data into LabPlot was greatly extended. **New data formats** – binary, image, NetCDF and HDF5 – are supported now. Preview of all supported file types in the import dialog was improved. For data formats with complex internal structures like NetCDF and HDF5, the content of the file is presented in a tree view that allows comfortable navigation through the file. The screenshots below show two examples for a NetCDF-file (136.9MB) and for a HDF5-file (1.6MB):

The next screenshot shows the data set ROSE from the example NetCDF-file mentioned above that was imported in LabPlot into a matrix, the image view was used.

The next new feature related to the data import improves the handling of compressed files. **Import of data compressed with gzip, bzip2 or xz** can be done now directly – the decompression happens transparently for the user.

**2D-Plotting:**

We’re still in the process of completing the 2D-plotting part of the application. Though this part is already very feature-rich in LabPlot, there’re still couple of gaps and we close some of them in this release.

We implemented **curve filling** – the area below, under, left to or right to the curve can be filled with a solid color, a color gradient or with a user specified image.

Sometimes there’re gaps in the data set – no values are available or some values don’t have a valid numerical format (“not a number”). When plotting such a data set it is often desirable not to interpolate between the data points in the region with missing data. This is now the default behavior in LabPlot that can be changes via the option **“Skip Gaps”**. The screenshot below shows two data sets with some masked data that was plotted with the option “Skip Gaps” switched off and on, respectively.

For the format of axis ticks, **multiples of Pi** can be used now – useful when plotting periodical functions. Minh Ngo, one of the three GSoC-students who worked this summer on LabPlot, contributed this small feature when he started to become familiar with LabPlot’s code.

With this release we started to implement what is usually named as “data analysis” in plotting software and we’ll add new analysis features gradually in the next releases. We hope to quickly close the gap in this area to the feature set that was available in the old (kde3-based) version of LabPlot. The first step in this direction is **linear and non-linear regression analysis** available now in LabPlot. Creating a fit to data is easy – given the data sets in a spreadsheet, one adds a new “xy-curve from a fit to data” to a plot and provides the data to be fitted and the mathematical model. Here, several predefined fit models are provided. User-defined models are also possible. The fit to the data is shown as the curve in the plot once the calculation is done and the goodness of the fit is documented with the help several parameters like sum of squared errors etc.

With version 2.0.2 **2D-curves defined by mathematical equations** in cartesian and polar coordinates or via a parametric equation can be plotted. This is done just by adding a “xy equation curve” to the plot and by providing the mathematical expression and ranges defining that curve.

The text field for the mathematical equation helps the user with syntax completion and highlighting. Two dialogs where all supported mathematical and physical constants and functions help further with the definition of mathematical expressions.

In addition to the two big new features described above, many smaller features and improvements were implemented.

Besides fixed worksheet sizes (predefined sizes like A4 etc. or user-defined), **complete view size for the worksheet** can be used. In this case the worksheet fills the complete window area availble. All sizes of the worksheet and its children are automatically adjusted if the application window is resized.

**Different types of arrows** can now be drawn for the axis.

Though the number and the position of axes in a plot in LabPlot is arbitrary and can be easily controlled and changed by the user, four templates were provided for the **four plot types most commonly used** – boxed plot with four axes, box plot with two axes, plot with two centered axes (placed at the center of the plot) and plot with two axis crossing at the origin point (0,0). These templates are reachable via the tool bar or the context menu of the worksheet.

Several worksheet objects like plot area, plot legend etc. can draw now **rounded borders**.

Further smaller features implemented in LabPlot 2.0.2 are **new formats for axis tick labels** – “powers of 10”, “powers of 2” and “powers of e” – and **three additional types for drop lines in a xy-curve** – “zero baseline”, “min baseline” and “max baseline”. The new drop line typ “zero baseline” e.g. is usefull when plotting residuals stemming from a fit where one wants to visualize the absolute error (the distance to the zero baseline) of the fit for each single data point like in the plot with the fit to data shown above.

The **navigation through the plotted data was improved**. The user can zoom into the shown data with the mouse via “select region and zoom in”, “select x-region and zoom in”, “select y-region and zoom in” mouse modes. Also, simultaneous zooming and navigation accross multiple plots is possible now.

The spreadsheet – the central object in LabPlot providing data – was extended by **several methods for data generation**. A column can be filled with a constant value provided by the user or with equidistant values. Lesser trivial use-cases for data generation are filling of columns with uniform and non-uniform random numbers, whereas several distributions are available for the second case, and filling of columns with values of a mathematical function.

Data in a **spreadsheet can be exported** now to a text file. The export of a worksheet to a PNG-image was extended by an **option for the image resolution**.

Finally, many **improvements regarding the performance** of the application were done. The import of ascii-data into a spreadsheet gained a huge speedup. Also, faster plotting of bigger data is now possible with LabPlot. Save and load of projects is now much faster then in the previous version.

Thanks to the KDE translators, **translations** are available for Bosnian, Brazilian Portuguese, English, Dutch, French, German, Polish, Portuguese, Spanish, Swedish and Ukrainian (and partially for couple of other languages).

This is the fist release of LabPlot being part of KDE. I want to thank to everybody who helped with the transition to the KDE-infrastructure. Especial kudos goes to Ben Cooksley an to Yuri Chornoivan who introduced me into many different topics regarding the KDE infrastructure (git, translations, documentation etc.) in private communications, to Andreas Cord-Landwehr who prepared the new site on edu.kde.org and to Andreas Kainz who completed the oxygen icons used in LabPlot and who created also the breeze icon set for LabPlot.

Also, I want to thank here Matthias MailĂ¤nder who continues to help with testing of the release candidates, checking the readiness of the tarball to be rpm-packaged and who prepares packages for openSUSE.

]]>site:

https://sourceforge.net/projects/labplot/files/latest/download?source=files

Two issues are fixed in this release:

* Fixed wrong scaling of legend’s text labels in pdf-export

* Fixed memory corruption in CartesianPlotDock that can lead to crashes

We’ll move now the repository to git at KDE Review. Further development will

proceed there. After fixing couple of issues reported by Krazy and having the

review of our project, we’ll move to KDE Extragear.

LabPlot2 is a complete rewrite of LabPlot1 and lacks in this release a lot of features available in the predecessor. On the other hand, the GUI and the usability are more superior as compared to LabPlot1 and there are several new features that were not available in LabPlot1.

If you want to see LabPlot2 in action, have a look at some screenshots in a recent blog [1].

You can download the source code from [2]. Binary packages are available for openSUSE [3].

As next, we plan to move to KDE infrastructure and to become a part of the KDE education project. Parallel to these activities we continue to work on LabPlot.

The roadmap, or better to say, a collection of ideas and steps to go in the near feature is the following:

1. Implement couple of new editing options that we’re currently missing (like arrows for axes, rounded rectangulars, shadow effects etc.)

2. Finalize axis/scale breaking in the backend and activate it in the frontend.

3. Extend zooming features for plots (zoom into the selected rectangular area etc.)

4. Implement “plotting a function”, a feature available e.g. in labplot1.x and in kmplot.

5. Integrate Cantor. As a proof of concept implement the usage of Maximas’s lists and arrays as the datasource for xy-curves in LabPlot.

6. Improve icons (use svg-versions only?)

7. Extend context menus for worksheet objects

8. Extend the functionality of our spreadsheet, decide how much we want to implement there, have a look at rkward.

These and some other topics are collected in our TODO-tracker [4]. There is no concrete order or priority for implementing these points.

[1] http://www.asinen.org/2013/10/labplot-2-and-the-state-of-free-data-analysis/

[2] http://sourceforge.net/projects/labplot/files/labplot/2.0.0/labplot-2.0.0.tar.bz2/download

[3] http://software.opensuse.org/package/labplot

[4] http://sourceforge.net/p/labplot/todo/

polishment and cleanup in the code was done. It’s a good time to

release the second beta. In a week or so, if no big problems occur, we’ll

upload the first final release of LabPlot2. Until then we still have time to

test and to improve. Also, the homepage needs update… ]]>