Live Graph

Plot and explore your data in real-time!

LiveGraph is a framework for real-time data visualisation, analysis and logging.
Distinctive features:
  • A real-time plotter that can automatically update graphs of your data while it is still being computed by your application.
  • Concise and simple point-and-click interface that allows quickly selecting and comparing data series even in applications that output over 1000 series simultaneously.
  • Transformation of data series for visual comparison by the virtue of a single click.
    (Linear, logarithm, unit interval, and time-plot transformations).
  • The framework is Java-based and can run on any computer system. However, it is easily integrated with applications written in any programming language. Examples and tutorials are provided.
  • LiveGraph reads files in a simple CSV-style format. For applications developed in Java, LiveGraph additionally provides an API that handles all data logging and persistency issues.
These features make LiveGraph particularly useful for all applications that require live visualisation of large amounts of data in form of graphs and charts.

LiveGraph was developed in the academic domain and is being used for research on daily basis. Being open source, LiveGraph is absolutely free.

What's inside?

LiveGraph consists of 3 major components:
a real-time plot suitean open data file standardseveral integration APIs.

Real-time plotter.

The first and most important component is the LiveGraph real-time plotter application. The plotter reads the LiveGraph data file (or any other CSV file) and plots the data series contained therein on the screen.

The plotter has two distinctive features which are not available elsewhere in this combination:

  1. LiveGraph can automatically re-examine the data file at short time intervals (anything between 100 Hz and once per hour) and update the graphs on the screen in real-time. By using specialised caching techniques LiveGraph uses only very few computational resources for the updates, even if the data file grows very large and fast.
  2. LiveGraph has an incredibly efficient user interface optimised for 100s of data series. While many plotters trade off powerful functions for a complex, slow-to-use user interface, LiveGraph offers only a few data transformation functions and makes them available by a single click in the main legend window. LiveGraph also automatically detects data series and their headings in the data file and provides a very concise user interface for selecting the graphs to display by virtue of a single click. This allows keeping an overview over hundreds or even thousands of graphs.

Open data file definition.

The LiveGraph framework provides an open standard for data files containing transferable data logs. The file format is closely based on the comma separated values (CSV) text file format. LiveGraph defines a few small but important extensions, such as data column header definitions and file description annotations.

This open format definition allows creating LiveGraph compatible value files in any programming language extremely easily.

In addition, this format is readily understood by other frameworks that can read CSV data, including the standard office software.

Integration APIs.

LiveGraph provides an open and very thoroughly documented API. This allows programmers to seamlessly integrate any of LiveGraph's functionality into their own software. LiveGRaph can be integrated on several levels:

  1. Integrate LiveGraph into any (non-Java) application. LiveGraph can be customised via settings files and command line parameters. Any application can start a LiveGraph process and automatically set up all options that are otherwise available through the user interface.
    In addition, the simplicity of the data file format makes it straight forward for developers who use other programming languages than Java to create appropriate data files using their own routines. We are hoping that the open source community will contribute to the project by providing implementations of the writer & logger API in different languages.
  2. Writer & logger API for Java. This API provides application developers with a very flexible, fast and easy way for writing data generated by an application into LiveGraph CSV files. The API offers advanced functions such as caching and log file management.
  3. Application interface. If you are using Java, you have the option to start LiveGraph as a separate process or to start it within the same JVM as your own application. The latter allows you to take advantage of the application interface exposed by LiveGraph. The application interface provides you with an API to control a LiveGraph instance while it runs. This includes full real-time control over all settings.
  4. LiveGraph plotter API - fully integrate LiveGraph's user interface into your Java application or into your web-applet! LiveGraph provides an API that exposes all settings windows as well as the plot window as JPanels allowing you to integrate a LiveGraph instance so seamlessly, that you users will never suspect your are using an off-the-shelve module. You can also pass data through memory and without the detour via the hard drive.
  5. Adapt LiveGraph to your needs. LiveGraph is open source. It is very well documented and commented. You are welcome to modify it in any way you like. If you think that your modifications may be useful for others, we will be very grateful to be able to include your work into the next distribution.

In summary, LiveGraph is being developed as an exploratory data analysis and visualisation framework that allows you to visualise the results of your application instantly and while it is still running and to manage many 100s graphs quickly and efficiently. You don't have to worry about implementing any data visualisation algorithms, instead you can concentrate on your actual task. As a useful by-product you are left with a complete data log, which you can delete later, if you do not need it.

You can find some additional information about LiveGraph's special features in the section "Why LiveGraph?". There, we explain in more detail, for which tasks there are better tools, and for which tasks LiveGraph might be the best tool currently around. In the user manual we describe the functions of LiveGraph application from the point of view of a desktop user. The developer manual provides all details you need in order to start using LiveGraph with your applications.

Contact

We greatly appreciate any feedback which could help us making LiveGraph better. If you have any questions about LiveGraph, if you have any support queries or if you would like to provide some feedback, please get in touch with us via the forums on the LiveGraph project page on SourceForge. For more information, visit the forum & contact page.

Licence

LiveGraph is free and open source. It is available under a BSD-style licence with the requirement that any copy acknowledges the original product and its developers. If you have any questions about the licence agreement, please read the detailed licence page or get in touch with us.