【问题标题】:javascript rickshaw graph auto scalejavascript人力车图自动缩放
【发布时间】:2014-08-18 23:04:09
【问题描述】:

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

我可以这样做:

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

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

【问题讨论】:

    标签: scale rickshaw


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      正如 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 的最小值和最大值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-16
        • 1970-01-01
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        • 2012-08-13
        • 1970-01-01
        相关资源
        最近更新 更多