-
Notifications
You must be signed in to change notification settings - Fork 0
/
DualPlot.qml
72 lines (64 loc) · 1.59 KB
/
DualPlot.qml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import QtQuick 2.9
import QtCharts 2.15
ChartView {
id: cv;
property real min: -1;
property real max: +1;
property bool adaptive: false;
property real spacing: 0.5;
property int number: 1;
property real minTimeDelta: 10;
function add(time, a, b) {
series_1.append(time, a);
series_2.append(time, b);
let _min = a, _max = b;
if(a > b) {
_min = b;
_max = a;
}
if(internal.first) {
internal.first = false;
timeAxis.min = time;
timeAxis.max = time + minTimeDelta;
internal.min = _min - spacing;
internal.max = _max + spacing;
}
else if(time > timeAxis.max) timeAxis.max = time;
if(_min < internal.min) internal.min = _min - spacing;
else if(_max > internal.max) internal.max = _max + spacing;
}
function clear() {
series_1.clear();
series_2.clear();
internal.first = true;
}
legend.visible: false;
QtObject {
id: internal;
property bool first: true;
property real min: -1;
property real max: +1;
}
ValuesAxis {
id: timeAxis;
min: 0;
max: 1;
}
ValuesAxis {
id: axisY;
min: adaptive ? internal.min : cv.min;
max: adaptive ? internal.max : cv.max;
}
LineSeries {
id: series_1
axisX: timeAxis;
axisY: axisY;
color: "#ee682b";
}
LineSeries {
id: series_2
axisX: timeAxis;
axisY: axisY;
color: "#121212";
}
}