2014-05-01 30 views
3

我們需要從頭開始查找或構建一個工具,該工具將收集用戶對其所查看圖形的反饋。科學家評論一些獲得的分佈是一個典型的例子。一般來說,這應該是某種集體討論層d3js將用戶的評論存儲在d3js圖中的數據點中

我想,這個想法並不新鮮,我甚至在幾年前看到了一種原型。任何人都可以指出可能的現有解決方案或可能有用的框架嗎?

最簡單的用例 - Bob看到d3js散點圖並觀察左上角的奇怪異常值A.他點擊它並寫下評論 - 「這一觀察是否都是正常的?」。當約翰進入系統並點擊A時,他可以閱讀評論並回復如「這只是我的貓跑過鍵盤」。

該邏輯可以有很多擴展,所以最好使用現有的工具。

+0

這是一個非常這是一項艱鉅的任務,涉及服務器和客戶端功能以及大量的決策。我懷疑有一種工具可以完全符合你的要求。下面是[圖片標記的jQuery插件](https://github.com/kmendes/Jquery-Photo-Tag),它顯然沒有意識到圖表語義,所以它將是您描述的非常有限的解決方案。我認爲任何量身定做的東西至少需要擴展現有的圖書館(如[vida.io](https://vida.io/),[Lyra](http://idl.cs.washington.edu)/projects/lyra /),[nvd3](http://nvd3.org/))。 – meetamit

+0

@meetamit感謝您分享鏈接。是的,我很清楚,這是一項艱鉅的任務,只是希望有人已經實現了它。 – RInatM

回答

3

如果註釋必須在一個點來完成,你可以考慮在組織的數據,如

{ 
    "x":10, 
    "y":20, 
    "comments":[ 
       { 
       "name":"Bob", 
       "content":"Was all conditions normal for this observation?", 
       "replies":[ 
          { 
          "name":"John", 
          "content":"That's just my cat who ran over keyboard", 
          "replies":null 
          } 
         ] 
       }, 
       { 
       "name":"indy", 
       "content":"ok for me", 
       "replies":null 
       } 
      ] 
} 

,以便"comments"部分可以通過點擊點填寫json(比方說,一個圈子),類似於

d3.selectAll("circle") // data are already bind here providing the d.x and d.y values 
    .on("click",funtion(d){ 
     d3.select("#node_where_I_want_the_comment_form") 
     .append("form") //... the user sets name and content 
}) 

然後設置d.comment=的名稱和內容。這並不簡單,但我建議使用https://www.mongodb.org/來存儲這種無模式數據。看:

http://docs.mongodb.org/ecosystem/use-cases/storing-comments/