【问题标题】:How can I create a line chart with two different scales using g.raphael or jquery svg?如何使用 g.raphael 或 jquery svg 创建具有两种不同比例的折线图?
【发布时间】:2011-01-25 22:47:03
【问题描述】:

我需要在 javascript 中绘制类似于 http://www.fordscorpio.co.uk/flatspot.htm 的图表的扭矩曲线。最好使用 g.raphael。欢迎任何建议。谢谢!

【问题讨论】:

    标签: jquery svg raphael linechart graphael


    【解决方案1】:

    您可以按如下方式创建自己的轴对象。 (已丢失此 sn-p 的源/gist URL,因此无法在应得的地方给予信任)

    axis = r.g.axis(85,230,310,null,null,4,2,["1",  "2", "3", "4"], "|", 0);
    axis.text.attr({font:"12px Arial", "font-weight": "regular", "fill": "#333333"});
    // y-axis denoted by setting orientation to 1 
    axis2 = r.g.axis(40,230,300,0,400,10,1);
    

    所以创建一个有两个系列的法线图,然后绘制另一个轴

    否则,设置多个轴,然后调整标签:-

    var lines = r.g.linechart(10, 10, 300, 220, [[1, 2, 3, 4, 5, 6, 7],[3.5, 4.5, 5.5, 6.5, 7, 8]], [[12, 32, 23, 15, 17, 27, 22], [10, 20, 30, 25, 15, 28]], {nostroke: false, axis: "1 1 1 1", symbol: "o", smooth: true});
    lines.axis[0].text.items[3].attr('text','my label');
    

    【讨论】:

      【解决方案2】:

      http://g.raphaeljs.com/linechart.html

      这是删除了 3 个不相关图表的脚本:

              window.onload = function () {
      
                  var r = Raphael("holder");
      
                  r.g.txtattr.font = "12px 'Fontin Sans', Fontin-Sans, sans-serif";
      
      
      
                  var x = [], y = [], y2 = [], y3 = [];
      
                  for (var i = 0; i < 1e6; i++) {
      
                      x[i] = i * 10;
      
                      y[i] = (y[i - 1] || 0) + (Math.random() * 7) - 3;
      
                      y2[i] = (y2[i - 1] || 150) + (Math.random() * 7) - 3.5;
      
                      y3[i] = (y3[i - 1] || 300) + (Math.random() * 7) - 4;
      
                  }
      
      
      
      
      
                  r.g.text(160, 10, "Symbols, axis and hover effect");
      

      (函数(){

                  var lines = r.g.linechart(10, 10, 300, 220, [[1, 2, 3, 4, 5, 6, 7],[3.5, 4.5, 5.5, 6.5, 7, 8]], [[12, 32, 23, 15, 17, 27, 22], [10, 20, 30, 25, 15, 28]], {nostroke: false, axis: "0 0 1 1", symbol: "o", smooth: true}).hoverColumn(function () {
      
                      this.tags = r.set();
      
                      for (var i = 0, ii = this.y.length; i < ii; i++) {
      
                          this.tags.push(r.g.tag(this.x, this.y[i], this.values[i], 160, 10).insertBefore(this).attr([{fill: "#fff"}, {fill: this.symbols[i].attr("fill")}]));
      
                      }
      
                  }, function () {
      
                      this.tags && this.tags.remove();
      
                  });
      
                  lines.symbols.attr({r: 3});
      
                  // lines.lines[0].animate({"stroke-width": 6}, 1000);
      
                  // lines.symbols[0].attr({stroke: "#fff"});
      
                  // lines.symbols[0][1].animate({fill: "#f00"}, 1000);
      
              };
      
          </script>
      

      【讨论】:

      • 对不起,我错过了“两个不同的尺度”位
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      • 2019-05-24
      • 2015-07-16
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      相关资源
      最近更新 更多