2015-10-05 101 views
9

我想使用ggplot2與grid.arrange繪圖生成多個情節。 一些事情與此類似:多個ggplot2情節與情節

library(ggplot2) 
library(gridExtra) 
library(plotly) 


g1<-ggplot(mpg, aes(displ, hwy, color=factor(year)))+geom_point() 

g2<-ggplot(mpg, aes(cyl, hwy, color=factor(year)))+geom_point() 

g<-grid.arrange(g1,g2,ncol=2) 

ggplotly(g) 

但是,我得到「在gg2list(P)錯誤:在未積層」

任何建議

+0

我甚至無法plotly中的R 3.1.3安裝。你使用什麼版本? –

+0

看到這個:https://plot.ly/r/getting-started/ –

回答

8

使用的plotly次要情節功能:

subplot(p1, p2, nrows = 2, margin = 0.04, heights = c(0.6, 0.4)) 
3

我有這個問題我和我不認爲現在有一種解決方案可以用你描述的方式來完成。

ggplotly調用中包含的gg2list函數期望能夠遍歷ggplot對象的圖層以創建相應的plotly對象。如果您使用RStudio的調試器進入ggplotly函數,您可以看到它嘗試遍歷它接收的對象以提取其屬性的各種方式。

它不知道如何處理由arrangeGrob函數返回的對象,因爲它不僅僅是一個ggplot對象(它是一個grob安排等)。

在有問題的對象上調用class()有點說明了這一點。

> class(g1) 
[1] "gg"  "ggplot" 

> class(g) 
[1] "arrange" "ggplot" "gTree" "grob" "gDesc" 

我認爲,爲了有多個地塊在同一plotly對象擡起頭,我們將需要使用ggplot的小選項或本機plotly [R綁定。不幸的是,因爲gridExtra非常強大和靈活,但ggplot轉換機制似乎無法處理它。