【问题标题】:How to write a for loop to generate a data point every time a process is executed如何编写for循环以在每次执行进程时生成一个数据点
【发布时间】:2016-06-28 13:54:27
【问题描述】:

我正在尝试在 JavaScript 中创建一个 for 循环,每次执行某个进程时,它都会在多维数组中生成一个点。

我正在使用 Google Charts 图表,并且或多或少地将其中一个完全复制到我自己的项目中,但该图表正在使用他们的点。

google.charts.load('current', {packages: ['corechart', 'line']});
google.charts.setOnLoadCallback(drawTrendlines);

function drawTrendlines() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'X');
  data.addColumn('number', 'Value y');
  data.addColumn('number', 'Value Y');

  data.addRows([
    [0, 0, 0],    [1, 10, 5],   [2, 23, 15],  [3, 17, 9],   [4, 18, 10],  [5, 9, 5],
    [6, 11, 3],   [7, 27, 19],  [8, 33, 25],  [9, 40, 32],  [10, 32, 24], [11, 35, 27],
    [12, 30, 22], [13, 40, 32], [14, 42, 34], [15, 47, 39], [16, 44, 36], [17, 48, 40],
    [18, 52, 44], [19, 54, 46], [20, 42, 34], [21, 55, 47], [22, 56, 48], [23, 57, 49],
    [24, 60, 52], [25, 50, 42], [26, 52, 44], [27, 51, 43], [28, 49, 41], [29, 53, 45],
    [30, 55, 47], [31, 60, 52], [32, 61, 53], [33, 59, 51], [34, 62, 54], [35, 65, 57],
    [36, 62, 54], [37, 58, 50], [38, 55, 47], [39, 61, 53], [40, 64, 56], [41, 65, 57],
    [42, 63, 55], [43, 66, 58], [44, 67, 59], [45, 69, 61], [46, 69, 61], [47, 70, 62],
    [48, 72, 64], [49, 68, 60], [50, 66, 58], [51, 65, 57], [52, 67, 59], [53, 70, 62],
    [54, 71, 63], [55, 72, 64], [56, 73, 65], [57, 75, 67], [58, 70, 62], [59, 68, 60],
    [60, 64, 56], [61, 60, 52], [62, 65, 57], [63, 67, 59], [64, 68, 60], [65, 69, 61],
    [66, 70, 62], [67, 72, 64], [68, 75, 67], [69, 80, 72]
  ]);

  var options = {
    hAxis: {
      title: 'Analysis number'
    },
    colors: ['blue', 'darkgreen'],
    trendlines: {
      0: {type: 'linear', color: 'red', opacity: .5}
    }
  };

  var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
  chart.draw(data, options);
}

我如何创建一个循环,将数据放入 [x,y,Y] 的形式中,其中每当执行进程时 x 总是递增 1 (x++)(例如方法 foo()),而 y & Y 值被记录并绘制成图表。

值 y 和 Y 是两个独立的整数值,它们是在项目的 Ruby on Rails 部分中获得的。

我什至不确定从语法的角度从哪里开始,并且看到了一个类似的问题here,但这并没有真正解决我的问题。

非常感谢!

【问题讨论】:

  • yY 的数据源是什么?你有那些阵列吗?你应该先学习how to write a for loop并尝试一下。
  • 它们来自程序的 ruby​​ on rails 部分,而不是数组,只是普通整数。
  • 所以图表的每个yY 都有自己的变量?您能否编辑问题以说明您的意思?
  • 是的,是的,没问题。

标签: javascript loops for-loop multidimensional-array graph


【解决方案1】:

创建一个可以插入的数组,循环遍历数据源,然后将其添加到图表中。

var rows = [];
for (var x = 0; x < 70; x++) {
    rows.push([x, y, Y]);
}
data.addRows(rows);

【讨论】:

  • 谢谢!我试试看
  • 这将创建 70 行,它们对于 yY 都具有相同的值。如果你有一组值要插入,你可以做rows.push([x, y[x], Y[x]])
猜你喜欢
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多