0

我正在用人力车图绘制,在 y 轴上,我需要正确缩放它。

我可以做这样的事情:

var graph = new Rickshaw.Graph( {
  element: document.getElementById("chart"),
  renderer: 'multi',
  min:165000000,
  max:176000000,
  width: 1000,
  height: 500,
  ....

但我希望它可以在 y 轴上自动缩放,而不是这里的硬编码“min”和“max”。有人有一个简单的例子吗?谢谢

4

2 回答 2

0

看来您需要检查系列中的所有数据,并检测最小值和最大值。

Rickshaw 网站上有一个缩放系列的示例: http: //code.shutterstock.com/rickshaw/examples/scaled.html

如果您查看源代码,您会看到他们正在手动遍历系列数据并找到数据极值。

于 2014-12-02T18:45:32.370 回答
0

正如 ArtBIT 建议的那样,您必须遍历数组并解析每个元素才能找到最小值和最大值。

假设您有一组将出现在图表上的价格。

例如:

var y_ticks = new Rickshaw.Graph.Axis.Y( {
  graph: graph,
  orientation: 'left',
  tickFormat: function(y) {return parseInt(y);},
  tickValues: [minArray(prices), maxArray(prices)],
  element: document.getElementById('y_axis')
});

function minArray(a) {
  var min=a[0]; for(var i=0,j=a.length;i<j;i++){min=a[i]<min?a[i]:min;}
  return min;
}

function maxArray(a) {
  var max=a[0]; for(var i=0,j=a.length;i<j;i++){max=a[i]>max?a[i]:max;}
  return max;
}

minArray(a) 和 maxArray(a) 求输入数组 a 的最小值和最大值。

于 2016-05-11T10:14:40.013 回答