根据具体的数学公式在折线图中绘制线条

时间:2013-12-02 16:10:11

标签: highcharts

我的折线图有一个稍微复杂的问题。

我设法制作动态折线图,所以当用户输入一些点时,它们将作为一条线绘制在图表上。

现在,我的问题是在图表上自动添加第二行,根据输入的值和计算第二行第二个值的特定公式。

让我说明一下我的意思......首先,根据先前输入的值绘制一行。假设用户输入这些值1.6,3.9,3.3,4.0,2.5,2.8 ......

===============================

需要根据此公式绘制第二行,它将遍历输入的值...

var interestRate1 = 3.5 + inputed_value1 + 0.5 * (inputed_value1 - 3),
        interestRate2 = 3.5 + inputed_value2 + 0.5 * (inputed_value2 - 3),
        interestRate2 = 3.5 + inputed_value3 + 0.5 * (inputed_value3 - 3), etc…

最终公式将计算我的第二个值(4.4,7.85,6.95,5,5.75,6.2),这是我想要实现的结果......

http://img191.imageshack.us/img191/9606/0sfy.png

===============================

单击“绘制图形”按钮时,需要绘制2条线,一条最初是从用户输入的,另一条是由我的公式计算的。

请参阅我的代码

  

http://jsfiddle.net/97SRR/4/

(我不知道为什么图表没有显示,我的index.html文件就好了......)

请帮助我,我会很感激有关我的代码的任何想法..我几周来一直在努力:(

1 个答案:

答案 0 :(得分:1)

这是您创建系列的地方:

var sample = {};
sample.name = 'Inflation';
sample.data = [1.6, 3.9, 3.3, 4.0, 2.5, 2.8];

series.push(sample);

所以你只需要添加一个系列,例如:

function calc(data) { 
  var l = data.length,
      ret = []; 

  for(var i = 0; i < l; i++) { 
    ret[i] = 3.5 + data[i] + 0.5 * (data[i] - 3);
  } 
  return ret; 
}
var sample = {};
sample.name = 'Inflation';
sample.data = [1.6, 3.9, 3.3, 4.0, 2.5, 2.8];

series.push(sample);

var calculated = {};
calculated.name = 'Math formula';
calculated.data = calc(sample.data); // [4.4, 7.85, 6.95, 8, 5.75, 6.2]; - calculated data

series.push(calculated);