2012-03-15 40 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