Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用d3.js创建趋势/指数回归线?_Javascript_Math_D3.js - Fatal编程技术网

Javascript 如何使用d3.js创建趋势/指数回归线?

Javascript 如何使用d3.js创建趋势/指数回归线?,javascript,math,d3.js,Javascript,Math,D3.js,我试图创建一条曲线,显示图形中数据的趋势,但我不知道如何生成必要的数据点,类似于此图中的第二个图形: 我发现的所有文档和示例都使用了超出我头脑的数学知识,任何伪代码都会很棒。我能够用以下代码绘制指数回归线: function square(x){return Math.pow(x,2);}; function array_sum(arr){ var total = 0; arr.forEach(function(d){total+=d;}); return total; } f

我试图创建一条曲线,显示图形中数据的趋势,但我不知道如何生成必要的数据点,类似于此图中的第二个图形:


我发现的所有文档和示例都使用了超出我头脑的数学知识,任何伪代码都会很棒。

我能够用以下代码绘制指数回归线:

function square(x){return Math.pow(x,2);};

function array_sum(arr){
  var total = 0;
  arr.forEach(function(d){total+=d;});
  return total;
}

function exp_regression(Y){
  var n = Y.length;
  var X = d3.range(1,n+1);

  var sum_x = array_sum(X);
  var sum_y = array_sum(Y);
  var y_mean = array_sum(Y) / n;
  var log_y = Y.map(function(d){return Math.log(d)});
  var x_squared = X.map(function(d){return square(d)});
  var sum_x_squared = array_sum(x_squared);
  var sum_log_y = array_sum(log_y);
  var x_log_y = X.map(function(d,i){return d*log_y[i]});
  var sum_x_log_y = array_sum(x_log_y);

  a = (sum_log_y*sum_x_squared - sum_x*sum_x_log_y) /
      (n * sum_x_squared - square(sum_x));

  b = (n * sum_x_log_y - sum_x*sum_log_y) /
      (n * sum_x_squared - square(sum_x));

  var y_fit = [];
  X.forEach(function(x){
    y_fit.push(Math.exp(a)*Math.exp(b*x));
  });

  return y_fit;
}

如果有任何数学家能仔细检查我的工作,我将不胜感激。谢谢谢谢你,齐克斯!是否有可能获得趋势线表达式??