Highstock 在同一 x 轴上步进多个数据点

Highstock step multiple data points on same x axis

当highstock图表数据集在同一轴上有多个点时ex:

data:  [[0,0], [0, 100], [1, 100], [1,200], [4, 100], [4, 200]]

默认情况下,点并不总是选择最高的数字。看起来它随机选择了同一轴上的数字之一。

这是我的提琴手示例:http://jsfiddle.net/ceo1y97m/

正如您将鼠标悬停在不同点上时所看到的,它并不总是显示最高点的 Y 值。我如何让它只显示最高点的价值?

编辑:这是我有多个相同的 x 值的原因:

假设这条线表示一段时间内您存入帐户的金额。在该行的图例中,我想显示您在查看期间存入的金额。这将是右边最远点的 Y 值减去左边最远点的 Y 值。如果我不包括重复的 Y 值,则此计算不正确。

查看更新的提琴手以在图例值上显示此错误(放大和缩小以更改图例值):https://jsfiddle.net/LS384/822/

两个数据集看起来完全相同,但图例值不同,因为同一轴上的两个点未显示。

我不确定步骤图的用途是这样的,每个轴点应该只有 1 个值。 你可以做的是过滤你的数据,只保留每个点的最高值

data:  [[0,0], [0, 100], [1, 100], [1,200], [4, 100], [4, 200]]

for (var i in data) {
    if (filteredData[data[i][0]] == undefined) {
        filteredData[data[i][0]] = data[i]
    } else {
       if (filteredData[data[i][0]][1] < data[i][1]) {
       filteredData[data[i][0]] = data[i];
       }
    }
}

这是你编辑过的过滤器,图表看起来和你想要的行为一样http://jsfiddle.net/ceo1y97m/4/

编辑:

我做了一个解决方法,我隐藏了未过滤的数据,使用过滤后的数据进行显示并赋予它与未过滤的数据相同的颜色,并且在计算差异的函数中我使用了未过滤的数据(ch.series[0].数据])

这是 fiddle 的预期行为 https://jsfiddle.net/LS384/826/

我会处理数据,所以每个 x 值有一个点和附加信息 - 多个值。我将 { x, y } 视为有关应如何可视化该点的信息,并添加包含所有附加值的数组,以便进行正确的计算。

这个:

[
  [0, 0],
  [0, 100],
  [1, 100],
  [1, 200],
  [1, 300],

变成这样:

[{
  x: 0,
  y: 100,
  values: [0, 100]
}, {
  x: 1,
  y: 300,
  values: [100, 200, 300]
}]

对于上述定义的点,您可以通过 point.options.values 访问值并计算差异。

示例:http://jsfiddle.net/jqdh79vv/