Multi-Axes Made Easy

Today we want to introduce the last of the new features we are implementing into the 2.9 release which we have recently finalized.

To demo this new feature, let’s use an example contributed by one of our users. This example is based upon the measurement data from a solar cell. The so-called “incident photon-to-current conversion efficiency” (IPCE) tells us how many incoming photons are converted into free electrons in the cell. This conversion efficiency, together with the generated current and their dependency on the wavelength of the incoming light, are the usual subjects of studies and optimizations for solar cells.

Consider the example where we want to plot the IPCE and the current density in the same plot and to see their behavior as a function of the wavelength. Your first idea may be to just lay out the curves for the plot like this:


Two curves, single range

But this reveals two problems:

  • The two quantities have different ranges (IPCE goes from 0% to ca. 80%, while the current density goes from 0 mA/cm^2 to ca. 12 mA/cm^2). This problem can become even more severe if the data ranges differ by many orders of magnitude.
  • The two quantities don’t share the same units. That makes it impossible to put a meaningful description on the y-axis.

We can remedy the situation a bit by using a plot legend which helps discriminate the different curves. Unfortunately the result is still far from being optimal, and this way of plotting different quantities having different units is commonly considered wrong.

A better solution for this kind of visualization is to work with two different data regions and axes. This is something that was not possible in LabPlot before now and it is a feature for which we had multiple requests in the past. This has led us to  recently implement this missing functionality, and the plot below shows what it looks like:

Two curves, two ranges

Note how, by working with two different axis scales and colors, you can produce a much clearer and more coherent visualization. Such a result is easily achieved in LabPlot now, and it all starts with the definition of the two data ranges for the x and y directions:

Range definition

The red-highlighted area in the image above is the new feature. The ranges for x and for y are combined into “Plot Ranges” and the objects on the plot like axes and curves are “assigned” to the different plot ranges. Once the definition of the plot ranges is done, the desired visualization for the two curves in the plot above is achieved with one single step by selecting the proper data range for every curve:

Curve range assignments

We arrive at the final result by assigning the second y-axis to the second data range and by adjusting the color properties of the second axis.

The user has a lot of flexibility in LabPlot to position the axes. Another possible visualization utilizing the two-axes technique is shown below:

Two curves, two ranges

A detailed walk-through for this example is maybe an idea for a future tutorial.

Suffice to say that, as mentioned, the development of new features for 2.9 is finalized, and we are now concentrating on the stabilization and quality control work to prepare everything for the release. People interested in contributing to these activities are invited to test our nightly builds and to provide us with feedback.

Stay tuned for more news regarding version 2.9!

Leave a Reply

Your email address will not be published. Required fields are marked *