如何可视化一组相同的流程?

时间:2019-02-12 18:50:12

标签: highcharts

我有可以解释为abc 的数据:

[
  ["hello", "world", "10"],
  ["hello", "world", "10"],
  ["hello", "wazaa", "10"],
  ["bonjour", "wazaa", "30"],
]

可以重复相同的流程(前两个示例),并且可以进行任意组合。

可以用来显示这些流的图表为parallel-coordinates:总有相同数量的列,并且可以跟踪每个流(与sankey相反,它聚合每个输入列)。

parallel-coordinates的问题是(我想)将堆叠多个相同的条目,并且不会出现重复的事实。

是否可以更改行的宽度以指示使用了几条相同的数据线?还是要提供将反映在宽度上的相同条目的计数(或者,最坏的情况是颜色)?

1 个答案:

答案 0 :(得分:0)

您可以预处理数据并为具有重复数据的序列设置更高的lineWidth值:

var series = [{
            data: [0, 0, 10]
        },
        {
            data: [0, 0, 10]
        },
        {
            data: [0, 0, 10]
        },
        {
            data: [0, 0, 10]
        },
        {
            data: [0, 1, 10]
        },
        {
            data: [1, 1, 30]
        }
    ],
    j = series.length - 1,
    dataLength = series[0].data.length,
    i;

for (; j > 0; j--) {
    i = 0;
    for (; i < dataLength; i++) {
        if (series[j].data[i] === series[j - 1].data[i]) {
            if (i === dataLength - 1) {
                series[j - 1].lineWidth = series[j].lineWidth ?
                    series[j].lineWidth + 1 : 2
                series.splice(j, 1);
            }
        } else {
            i = dataLength;
        }
    }
}

实时演示:https://jsfiddle.net/BlackLabel/4pth15yf/

API:https://api.highcharts.com/highcharts/series.line.lineWidth