2013-10-18 111 views
1

我試圖從igraph包中包含一個tkplot包在HTML(從Rmd編織)文件中通過knitr包。我問了一個關於乳膠的非常類似的問題(這應該更難)here。 Yihui回答,但我不能轉移這個鉤子,並學習這種情況。如何在knitr中使用Rmd文件在HTML文檔中嵌入以下tkplottkplot in html with knitr

```{r setup, include=FALSE} 
library(igraph) 
library(tcltk) 
``` 


```{r} 
edges <- structure(c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", 
    "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "A", "B", "C", 
    "D", "E", "F", "G", "H", "I", "J", "E", "G", "G", "F", "H", "G", 
    "D", "J", "J", "D", "B", "C", "D", "I", "I", "H", "A", "B", "G", 
    "I", "F", "D", "F", "J", "D", "B", "E", "E", "A", "E"), .Dim = c(30L, 
    2L), .Dimnames = list(NULL, c("person", "choice"))) 

g <- graph.data.frame(edges, directed=TRUE) 
tkplot(g) 
``` 
+1

的關鍵是要獲得一個情節是,Web瀏覽器可以識別,比如PNG圖像。我認爲有多種方式可以到達,例如(1)不要使用'tkplot()'(我想這不是'igraph'中唯一的繪圖功能); (2)在'knitr'中用'hook_rgl'調用'rglplot()'? (3)將從'tkplot()'導出的postscript圖像轉換爲png? ...我會把它留給其他人來破解。 –

回答

0

不那麼有吸引力,但下面一輝的建議:

```{r setup, include=FALSE} 
library(igraph) 
library(rgl) 

knit_hooks$set(
    webgl = hook_webgl 

) 
``` 


```{r, webgl=TRUE, fig.width=12, fig.height=12} 
edges <- structure(c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", 
    "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "A", "B", "C", 
    "D", "E", "F", "G", "H", "I", "J", "E", "G", "G", "F", "H", "G", 
    "D", "J", "J", "D", "B", "C", "D", "I", "I", "H", "A", "B", "G", 
    "I", "F", "D", "F", "J", "D", "B", "E", "E", "A", "E"), .Dim = c(30L, 
    2L), .Dimnames = list(NULL, c("person", "choice"))) 

g <- graph.data.frame(edges, directed=TRUE) 
rglplot(g) 
```