Premium components
Timeseries Chart
Premium feature

This is a premium feature which requires a paid plan to be used. See here for more details.

Timeseries Chart

The Chart.Timeseries component allows you to visualise timeseries data in your reports, with powerful customisation options.

Example JSON

Below is an example of the JSON required to define a Chart.Timeseries component:

{
    "type": "Chart.Timeseries",
    "options": {
        "data": [
            {"x": "2022-01-01 09:00:00", "y": 56},
            {"x": "2022-01-02 09:00:00", "y": 72},
            {"x": "2022-01-04 09:00:00", "y": 78}
        ],
        "x_label": "X axis label",
        "y_label": "Y axis label",
        "chart_title": "Chart title",
        "caption": "Lorem ipsum dolor, sit amet consectetur adipisicing elit. Repudiandae provident ipsa culpa officiis illum commodi voluptas, sequi repellat veniam adipisci laboriosam amet nesciunt nam explicabo voluptate minima inventore, minus sint"
    }
}

Config options

KeyDescription
dataThe data to plot in the chart. See below for more details.
font_sizeOptional. The font size in pixels. Defaults to 16.
aspect_ratioOptional. The aspect ratio of the chart (width / height). Defaults to 1.6.
time_formatOptional. The time format for the x values. Defaults to %Y-%m-%d %H:%M:%s.
tick_formatOptional. The format of the strings for ticks on the X-axis. See below for more details.
color_schemeOptional. A Brewer color scheme to color each bar using.
curve_formatOptional. The curve fitting algorithm used to connect the dots. See below for more details.
plot_dotsOptional. Whether to plot dots for each line. Defaults to false.
x_labelOptional. The X-axis label.
y_labelOptional. The Y-axis label.
horizontal_marginOptional. Margin added horizontally to the element. Defaults to 3. Accepts any integer between 1 - 12, 14 or 16.
vertical_marginOptional. Margin added vertically to the element. Defaults to 1. Accepts any integer between 1 - 12, 14 or 16.
marginOptional. Instead of setting horizontal or vertical margins separately, a global value can be set here.
chart_titleOptional. The chart title.
captionOptional. Caption below the chart.
widthOptional. The width of the component. Only applies when inside a Section or Row component whose columns option is set to null.

Data

The data key must be an array of objects, with each object containing the keys x and y. Values can be grouped by providing a label key, which is used to plot data points as separate lines. A maximum of 1,000 points can be plotted on a chart.

Time format

The time_format option refers to how Hybiscus parses the X-values, which is by default set to %Y-%m-%d %H:%M:%s. This string format is based on the striptime / strftime functions. For more details, refer to this link.

Tick format

The format of the strings in the ticks of the X-axis is automatic, and adapts to the range and scale of values provided (i.e. over minutes, days, months or years). This can be overrided using the tick_format option, which accepts time format strings as described above.

Curve format

The curve interpolation algorithm used to connect the dots between data points can be customised. By default, it is set to MonotoneX. Any of the following options are allowed:

  • Linear
  • Step
  • Basis
  • Step
  • StepBefore
  • StepAfter
  • Natural
  • Cardinal
  • CatmullRom
  • MonotoneX

The interpolation algorithms are based on the implementations in the D3.js data visualisation library, detailed here. Examples of the different algorithms are shown below:

Theming

The colour of the line is automatically chosen by the theme selected for the report. For more details see Theming. If the data key contains data that can be grouped with multiple label values, the color_scheme key must be set to an option from color brewer scales. Allowed values include:

  • Category10
  • Accent
  • Dark2
  • Paired
  • Pastel1
  • Pastel2
  • Set1
  • Set2
  • Set3
  • Tableau10

Width

For details on the width key, please see here.

Example

Missing something?

Hybiscus is continuously improving and adding new features. If you think we are missing a critical feature, please do not hesitate to contact us and offer your feedback at info@hybiscus.dev