How to Present Time Series Data

The first step in detecting trends that might drive time series modelling and analysis is frequently to visualise time series data.

Visualizing time series data is becoming increasingly important as time series data analysis becomes more important in applications across industries. The more easily accessible and shared data is, the more useful it becomes across teams. A single time series graph or dashboard might be worth multiple written reports since it provides a visual snapshot of change over time for a particular set of parameters.

What we can learn from time series visualizations

Visualizing time series data can aid in the detection of trends, outliers that defy those patterns, whether the data is stationary or non-stationary, and whether or not there is correlation between the variables. A time series line graph (also known as a timeplot) plots values against time. It is similar to x-y graphs, however the x-axis simply shows time. Time series graphs can be more elaborate, providing additional context for the data.

In dashboards, time series data may be searched and graphed using a variety of display styles. The ideal visualisation type to employ is the one that works best for your use case. Time series graphs graphically emphasise the data’s dynamics and trends. They make it simple to discover patterns such as trend, seasonality, and correlation.

Let’s review some tools for graphing time series data and some of their visualization capabilities.

Time series graphing tools

Time series graphing tools often come with pre-configured dashboards to facilitate getting started. Open source projects like InfluxDB (disclosure: I work at InfluxData), a time series platform with a built-in dashboarding engine) and Grafana are popular choices for visualizing time series data and provide different types of time series plots that make observed data meaningful and easier to interpret. As Grafana integrates with InfluxDB, the two platforms are often used in combination to visualize data from various data sources and to facilitate sensor, system, and network monitoring.

Visualizing time series data with InfluxDB

When it comes to working with time series data using InfluxDB Cloud or InfluxDB OSS, the built-in InfluxDB UI is the complete package. The UI includes no-code tools for getting started with writing data to InfluxDB, visual scripting and querying tools, the ability to conduct data transformation activities, and alert generation tools. Naturally, the InfluxDB UI has strong capabilities for creating bespoke dashboards. As an example:

  • InfluxDB can visualize time series data using custom graphs from graphing libraries such as Plotly.js, Rickshaw, and Dygraphs.
  • InfluxDB Templates, a set of tools that includes a packager and a set of pre-canned dashboards, allow users to share their monitoring expertise.

Visualization types available through the InfluxDB UI include band charts, gauge charts, line and bar graphs, single-stats graphs, heatmaps, histograms, mosaics, scatter plots and tables.

visualizing time series 01 InfluxData
The band chart displays the upper and lower boundaries of groups of data over time.

visualizing time series 02 InfluxData
The heatmap shows data distribution on x and y axes where color represents data point concentration.

visualizing time series 03 InfluxData
The gauge graph shows the single most recent value for a time series and where it falls within a spectrum.

Visualizing time series data with Grafana

The process of setting up a Grafana dashboard and integrating it with various data sources is straightforward. Grafana ships with a feature-rich data source plug-in for InfluxDB. The plug-in includes a custom query editor and supports annotations and query templates.

visualizing time series 04 InfluxData
Two Grafana cells visualize request times (right) and load times (left) with a line graph and bar plot respectively.

visualizing time series 05 InfluxData
A Grafana dashboard used to monitor InfluxDB complete with visualizations about the average system load, queries executed, writes executed, series count, and more.

visualizing time series 06 InfluxData
A Grafana dashboard used for application or website monitoring.

Grafana has a rich set of graphing features and offers a high level of customization for dashboard building and editing. Capabilities include:

  • Dynamic and reusable dashboards
  • Data exploration through ad-hoc queries and dynamic drilldown
  • Logs exploration
  • Visually defining alert rules
  • Annotations to view event metadata and tags

Plug-ins can be used to import data from external data sources and return the data in a format that Grafana understands. Various data sources integrate with Grafana to produce Grafana dashboards and help users to extract insights through visualizing time series analytics.

Combining data visualization with powerful analytics

The strength of a data visualisation solution is determined by the solution’s companion analytics capabilities. Time series data scientists and analysts require the freedom to alter their data anyway they see appropriate. In order to prepare their data for meaningful data visualisation, they must be able to quickly apply statistical, dynamic statistical, financial momentum, arithmetic, and even geotemporal functions to their time series data. Flux, InfluxData’s functional query and scripting language, enables all of this for InfluxDB users.

visualizing time series 07 InfluxData
An example of visualizing geotemporal data with the InfluxDB UI.

Flux enables users to create powerful geotemporal visualizations. Flux also enables users to build custom functions for anomaly detection. This blog post on using Flux for anomaly detection highlights why powerful data visualization tools require complementary analytics tools. It’s almost impossible to spot the anomalous series among the collection of like time series in this data:

visualizing time series 08 InfluxData

However, the median absolute deviation Flux function, a custom anomaly detection algorithm, helps the user to uncover and visualize the resulting anomalies in that dataset:

visualizing time series 09 InfluxData

Leave a Reply

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