胜利图表——突破线
Victory Charts -- Break Line
是否可以打破胜利图表中的情节线?我可以通过制作两条相同颜色的不同绘图线来做到这一点,但我正在寻找一种自动方式。我有很多零的数据,我只想要曲线。如果我删除零值,线条会连接起来。
我有这个。这些线在轴原点下方的零处连接:
我想要这个:
我使用这个函数从一个带零的数组创建了多个数据行:
export function breakLine(buffer: any[], startTime: any) {
let zeroCounter = 0;
let signalCounter = 0;
let curr: any[] = [];
let result: any[] = [];
buffer.forEach((value: any) => {
// any value less than 20 will be considered a zero
if (value.result[0] < 20) {
zeroCounter++;
} else {
curr = [
...curr,
{
x: value.time - startTime,
y: value.result[0],
},
];
signalCounter++;
zeroCounter = 0;
}
// break line on 3 or more consecutive zeroes
if (zeroCounter >= 3 && signalCounter > 0) {
result = add(curr, result);
zeroCounter = 0;
signalCounter = 0;
curr = [];
}
});
// remaining in current after loop
result = add(curr, result);
return result.filter((plot: any) => plot.length > 0);
}
我为每个嵌套数组映射一行:
line1.map((data) =>
<VictoryLine
style={{
data: { stroke: '#0000FF' },
parent: { border: '1px solid #ccc' },
}}
data={data}
/>)
是否可以打破胜利图表中的情节线?我可以通过制作两条相同颜色的不同绘图线来做到这一点,但我正在寻找一种自动方式。我有很多零的数据,我只想要曲线。如果我删除零值,线条会连接起来。
我有这个。这些线在轴原点下方的零处连接:
我想要这个:
我使用这个函数从一个带零的数组创建了多个数据行:
export function breakLine(buffer: any[], startTime: any) {
let zeroCounter = 0;
let signalCounter = 0;
let curr: any[] = [];
let result: any[] = [];
buffer.forEach((value: any) => {
// any value less than 20 will be considered a zero
if (value.result[0] < 20) {
zeroCounter++;
} else {
curr = [
...curr,
{
x: value.time - startTime,
y: value.result[0],
},
];
signalCounter++;
zeroCounter = 0;
}
// break line on 3 or more consecutive zeroes
if (zeroCounter >= 3 && signalCounter > 0) {
result = add(curr, result);
zeroCounter = 0;
signalCounter = 0;
curr = [];
}
});
// remaining in current after loop
result = add(curr, result);
return result.filter((plot: any) => plot.length > 0);
}
我为每个嵌套数组映射一行:
line1.map((data) =>
<VictoryLine
style={{
data: { stroke: '#0000FF' },
parent: { border: '1px solid #ccc' },
}}
data={data}
/>)