【问题标题】:Graphael documentation, recent samples, etcGraphael 文档、最近的示例等
【发布时间】:2013-02-05 06:55:22
【问题描述】:

我正在使用gRaphael 实现实时更新折线图,它是Raphael SVG 库的图形扩展。

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

似乎在任何地方都没有准确的文档。我发现了这个 StackOverflow 问题:Graphael line chart,这又导致了这个文档项目:https://github.com/kennyshen/g.raphael/tree/master/docs,但结果很冷。使用提供的示例,我遇到了一些错误:

  1. 示例中使用的语法 r.g.linechart() 不再有效(其中 r 是 Raphael 对象,我假设 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]
);

【问题讨论】:

标签: javascript raphael graphael


【解决方案1】:

我仍在尝试自己学习 Raphael,但以下是我一直在使用的主要资源: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

【讨论】:

    【解决方案2】:

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

    您需要download 代码并从您的计算机上查看它。这是一项正在进行的工作,但它比您在 g.Raphael 官方页面中找到的要多。

    我还发现了this 的小帖子,里面有一些例子。

    【讨论】:

    • 感谢 Naoise 的回复。您所指的分支是我找到“失败”文档的地方(它在 Raphael 对象中使用了无效的 .g 属性)。您提到的另一篇文章很有希望,但在 's' 作为 'symbol' 参数的值时失败了。太奇怪了。我暂时切换到 flotr2,但当我们从原型转向生产时,可能会重新访问 Raphael / gRaphael。再次感谢!
    • 正如我在之前的评论中提到的,这份文件不是完整的解决方案;但是,这是我最接近的一次(在迁移到 fltr2 之前),所以我将其标记为已接受。
    • @derekdreery 似乎用户不再存在,我找不到替代叉:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2014-01-25
    相关资源
    最近更新 更多