2012-03-15 38 views
4

我正在使用gRaphael这是对Raphael SVG库的图形扩展的实时更新线图的实施。Graphael文档,最近的样本等

我似乎无法找到任何人做这个近实时更新项目的例子,这很好。我假设有一种方法可以用新的数据集在图上调用刷新方式(不需要每次都重新初始化一个新的Raphael对象!),但其中存在以下问题:

有没有似乎是任何地方的准确文件。我发现了这个StackOverflow问题:Graphael line chart反过来导致这个文档项目:https://github.com/kennyshen/g.raphael/tree/master/docs,但结果很冷。使用所提供的实例中,我跑进一些错误:

  1. 在实施例中使用的语法r.g.linechart()不再有效(其中r是圣拉斐尔对象和我假定g是中的gRaphael属性)。在某个程序中,某人必须切换到正确地延伸Raphael对象,以便r.linechart()工作。

  2. 传递到linechart()的参数不正确,导致再次出现未定义的错误。如果我只传入#x, #y, width, height, arrayX, arrayY参数并删除了图表标签等,我可以渲染一条普通线条。但当然,我需要能够标记我的轴,并提供一个传奇,等

不用说,没有一个API文档库是不会做的人多好,但也有中坚在那里愿意学习的人严格依赖阅读代码本身。我不是其中之一。我可能会做一个好评的例子,最好使用实时更新。

所以我想的问题是:

  1. 有谁知道比我挂更好的文档?
  2. 有人可以指点我的例子,文档失败?
  3. 有人可以提供linechart()将接受的参数的适当分项?

谢谢!

为了记录在案,这里是我多远,我至今:

var r = Raphael('line-chart'); 

// did NOT work --> 
var linechart = r.g.linechart(
    10,10,300,220,[1,2,3,4,5],[10,20,15,35,30], 
    {"colors":["#444"], "symbol":"s", axis:"0 0 1 1"} 
); 

// worked in a limited way, rendering a plain line with no visible labels/graph --> 
var linechart = r.linechart(
    10,10,300,220,[1,2,3,4,5],[10,20,15,35,30] 
); 
+0

的http:// g^.raphaeljs.com/reference.html – Daniel 2013-02-05 11:48:09

回答

0

有一个fork in GitHub that is working on the documentation and examples.

您需要download代码,并从您的电脑查看。这是一项正在进行的工作,但它比官方的g.Raphael页面中的要多得多。

我还发现this有一些例子的小贴子。

+0

感谢您的回复,Na瓦兹。你提到的fork是我找到“失败”文档的地方(它在Raphael对象中使用了一个无效的'.g'属性)。你提到的另一篇文章是有前途的,但是作为'符号'参数的值失败了。太奇怪了。我暂时切换到flotr2,但是当我们从原型转向生产时,可能会重新访问Raphael/gRaphael。再次感谢! – 2012-03-21 16:55:07

+0

正如我以前的评论中提到的,这个文件不是全面的解决方案;但是,这是我最接近的(在移动到flotr2之前),所以我将其标记为已接受。 – 2012-04-23 14:37:04

+0

https://github.com/kennyshen/g.raphael链接已损坏。 – derekdreery 2013-10-18 14:15:19

2

我仍然试图自己学习拉斐尔,但这里是我一直在使用的主要资源:http://g.raphaeljs.com/reference.html和“g。“

这里是非常拉了一个更新的线型图与淘汰赛/ gRaphael,概率不是最好的解决方案,但它的一个想法小提琴:http://jsfiddle.net/kcar/mHG2q/

刚一说明,我并没有开始学习,直到我结合试验/错误读取(有很多错误的),所以用小提琴演奏,看世事如何变迁

,但它的基本代码如下:

//constructor 
var lines = r.linechart(10, 10, width, height, xVals, yVals, { nostroke: false, axis: "0 0 1 1", symbol: "circle", smooth: true }) 
    .hoverColumn(function() { //this function sets the hover tag effect 
     this.tags = r.set(); 

    for (var i = 0, ii = this.y.length; i < ii; i++) { 
     this.tags.push(r.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 }); //this adjusts size of the point symbols