nvd3格式在y轴上分别为2行

时间:2014-06-04 06:04:23

标签: javascript graph d3.js nvd3.js

我在y轴上绘制了2条线,是否可以单独格式化这些线。 这是我的数据:

var dataMy = [
    {
        "key": "key1",
        "values": [
            [
                1697000000,
                (19024000000-mean1)/std1
            ],
            [
                1764000000,
                (19764000000-mean1)/std1
            ],
            [
                1829000000,
                (21496000000-mean1)/std1
            ]
        ]
    },
    {
        "key": "key2",
        "values": [
            [
                1697000000,
                (13530000-mean2)/std2
            ],
            [
                1764000000,
                (41790000-mean2)/std2
            ],
            [
                1829000000,
                (29280000-mean2)/std2
            ]
        ]
    }
]

在显示图表时,我希望将key1的所有值更改为:

  y(i) = y(i) * std1 + mean1;

和key2的值为:

 y(i) = y(i) * std2 + mean2;

我只能传递一个函数来格式化y值,有没有办法在格式化函数中知道我属于key1或key 2的值,以便我可以应用if else,

  formatter = function(i){
      if(i from key1)
         return i*std1 + mean1;
      else if(i from key2)
         return i*std2 + mean2;
  };

  chart.yAxis     //Chart y-axis settings
      .axisLabel('Voltage (v)')
      .tickFormat(formatter);

i值是y轴上显示的所有y值和图表上的点,两个行的y值以交替顺序在格式化函数中接收。因此,如果我交替应用反向映射它可以工作但是当我从图例中选择一行时,再次调用此函数,这次仅使用一行替换值将给出错误的结果。

0 个答案:

没有答案