2014-06-19 14 views
6

Tôi muốn xoay đối tượng ggplot hoàn chỉnh 90 °.Xoay đối tượng lô ggplot2

Tôi không muốn sử dụng coord_flip vì điều này dường như ảnh hưởng đến scale="free"space="free" khi sử dụng các khía cạnh.

Ví dụ:

qplot(as.factor(mpg), wt, data=mtcars)+ 
facet_grid(.~vs + am, scale="free",space="free") 

enter image description here

vs

qplot(as.factor(mpg), wt, data=mtcars)+ 
    facet_grid(vs + am ~ ., scale="free",space="free")+ 
    coord_flip() 

enter image description here

Những gì tôi muốn:

enter image description here

Tôi có thể cần sử dụng gridExtra.

+0

Tại sao bạn cần phải xoay với ggplot2/lưới? Có thể dễ dàng xoay vòng trong bất kỳ phần mềm nào (ví dụ: latex hoặc từ) mà bạn muốn sử dụng. – Roland

Trả lời

13
print(p, vp=viewport(angle=-90)) 
+0

Cách thay thế mất thời gian tôi tìm thấy là 'grid.newpage() pushViewport (khung nhìn (góc = -90, chiều rộng = đơn vị (7," inch "), chiều cao = đơn vị (7," inch "))) grid.draw (ggplot_gtable (ggplot_build (p))) ' –

+1

Tốt nhất. Bạn là kẻ mạnh mẽ-Ace. (Tôi có lẽ sẽ chỉ in như là "cảnh quan", nhưng tôi có thể thấy giá trị của việc có thể gửi điều này trong đan hoặc các hệ thống đánh dấu khác. –

+1

@ EtienneLow-Décarie nếu bạn đã đẩy một khung nhìn, bạn có thể sử dụng 'print (p , newpage = FALSE) 'Và nếu vì lý do nào đó bạn muốn vẽ một grob một cách rõ ràng,' ggplotGrob' là một bí danh ngắn hơn. – baptiste

1

Đây có phải là những gì bạn mong đợi không?

qplot(x=wt, y=as.factor(mpg), data=mtcars) + 
    facet_grid(vs + am ~ ., scale="free", space="free") 

"rotated" plot

+0

Có, nhưng chuyển toàn bộ cốt truyện là những gì tôi đang tìm kiếm. –

Các vấn đề liên quan