Skip to content

Multiple axes

Each series chooses its own X and Y axes, so several units or sampling domains can share one plot area.

Axis layout size

Each axis reserves 50 pixels by default. layoutSize sets the height of a horizontal axis or the width of a vertical axis:

yAxis: QAccelPlot.Axis {
    layoutSize: 90
    label: "Temperature"
}

xAxis: QAccelPlot.Axis {
    layoutSize: 70
    label: "Time"
}

layoutSize does not grow with label text, fonts, or formatters. Choose a value that fits the tick labels and axis title.

Secondary axes

x2Axis is placed at the top and y2Axis on the right.

import QtQuick
import QAccelPlot as QAccelPlot

QAccelPlot.Plot {
    id: plot

    xAxis: QAccelPlot.Axis {}
    yAxis: QAccelPlot.Axis {}
    y2Axis: QAccelPlot.Axis {
        viewportMin: 0
        viewportMax: 100
        label: "Load (%)"
    }

    QAccelPlot.LineCurve {
        xAxis: plot.xAxis
        yAxis: plot.yAxis
    }

    QAccelPlot.LineCurve {
        xAxis: plot.xAxis
        yAxis: plot.y2Axis
    }
}

Extra axes

Use extraAxes for more than two axes in one orientation. They are laid out in declaration order: horizontal axes stack below the primary X axis, vertical axes stack from the plot's left edge inward.

import QtQuick
import QAccelPlot as QAccelPlot

QAccelPlot.Plot {
    id: plot

    xAxis: QAccelPlot.Axis {
        viewportMin: 0
        viewportMax: 10
        label: "Slow time (s)"
    }

    extraAxes: [
        QAccelPlot.Axis {
            id: fastAxis
            orientation: Qt.Horizontal
            side: QAccelPlot.Axis.Bottom
            viewportMin: 0
            viewportMax: 0.5
            label: "Fast time (s)"
        }
    ]

    QAccelPlot.LineCurve {
        xAxis: fastAxis
        yAxis: plot.yAxis
    }
}

Complete source: examples/axes/multiple_axes