在gRaphael中将x轴和y轴添加到条形图?

时间:2010-12-01 07:29:19

标签: javascript raphael graphael

我想使用gRaphael javascript库创建一个条形图。 gRaphael支持标记轴吗?

4 个答案:

答案 0 :(得分:3)

您也可以使用轴类:

            var chart = r.g.barchart(50,15,gW,167,  [ this.chart.Value ], { }).hover(fin, fout);
            var aX = chart.bars[0][0].x;
            var aW = chart.bars[0][chart.bars[0].length -1].x - aX;
            var axis = r.g.axis(aX,180,aW ,null,null,this.chart.Labels.length - 1  ,2, this.chart.Labels , "|", 0);
            axis.text.attr({font:"12px Arial", "font-weight": "regular", "fill": "#FFFFFF"});

答案 1 :(得分:2)

[我知道这个问题已经过时了,但这是我的解决方案 - ]

我没有设法使用r.g.axis,但我使用了aX -

  var x, y = 250;
  for (i = 0; i < MAX_ITEMS; i++) {
    x = chart.bars[0][i].x;
    r.text(x, y, "[" + i + "]").attr(txtattr);
  }

答案 2 :(得分:0)

虽然在example中没有标签,但我看到了一些轴。我认为您可以使用Raphael函数text()将文本添加到所需位置。

var t = paper.text(50, 50, "X Label");

答案 3 :(得分:0)

对于Y轴,我添加了另一个条形图,其中包含我要标记的步骤。 我猜你可以将它的颜色设置为“透明”。

var myArrY = new Array ();                    // original values                     
// TODO: fill its values as before . . .

var myArrY_steps = new Array(0, 10, 20, 30);  // the steps I want to mark

var myData = new Array ();                     
 myData[0] = myArrY;
 myData[1] = myArrY_steps;   
 var chart = r.barchart(10, 10, 600, 300, myData, 0, {type: "sharp"});
. . . 
 var x = 10;
 var y;
 for (i = 0; i < myArrY_steps.length; i++) {
   // Note: In this loop I use chart.bars[1], the steps array!
   y = chart.bars[1][i].y;                    // calculated by gRaphael !
   r.text(x, y, chart.bars[1][i].value).attr(txtAttr);  
 }