2015-05-28 22 views
8

Quạt khổng lồ của các ô khía cạnh trong ggplot2. Tuy nhiên, đôi khi tôi có quá nhiều điểm phụ và sẽ rất tuyệt khi chia nhỏ chúng thành một danh sách các ô. Ví dụChia ô chữ khía cạnh thành danh sách các ô

df <- data.frame(x=seq(1,24,1), y=seq(1,24,1), z=rep(seq(1,12),each=2)) 
df 
    x y z 
1 1 1 1 
2 2 2 1 
3 3 3 2 
4 4 4 2 
5 5 5 3 
. . . . 
. . . . 

myplot <- ggplot(df,aes(x=x, y=y))+geom_point()+facet_wrap(~z) 
myplot 

enter image description here

Làm thế nào tôi sẽ viết một hàm để có những âm mưu kết quả và chia nó thành một danh sách các lô? Một cái gì đó dọc theo các dòng này

splitFacet <- function(subsPerPlot){ 
    # Method to break a single facet plot into a list of facet plots, each with at most `subsPerPlot` subplots 

    # code... 

    return(listOfPlots) 
} 
+4

Việc tạo các ô riêng biệt có dễ dàng hơn không? Ví dụ. như 'myplots <- lapply (duy nhất (df $ z), hàm (id) ggplot (tập con (df, z == id), aes (x = x, y = y)) + geom_point() + ylim (phạm vi (df $ y)) + xlim (phạm vi (df $ x))); do.call (gridExtra :: grid.arrange, myplots [3: 6]) '. – lukeA

+0

Bạn nên thêm 'facet_wrap (~ z)' nếu bạn muốn một nhãn dải có giá trị z được đưa vào ô. – eipi10

+0

@ lukeA Tôi không chắc chắn rằng chơi độc đáo với truyền thuyết – Ben

Trả lời

3

Trong khi tôi đang tìm kiếm giải pháp cho điều này tôi có thể trên ggplus. Cụ thể chức năng facet_multiple:

https://github.com/guiastrennec/ggplus

Nó cho phép bạn chia một khía cạnh trên một số trang bằng cách xác định số lượng lô bạn muốn mỗi trang. Trong ví dụ của bạn, nó sẽ là:

library(ggplus) 

df <- data.frame(x=seq(1,24,1), y=seq(1,24,1), z=rep(seq(1,12),each=2)) 

myplot <- ggplot(df,aes(x=x, y=y))+geom_point() 

facet_multiple(plot = myplot, facets = 'z', ncol = 2, nrow = 2) 

Đây có phải là thứ bạn cần không? Nó làm việc cho tôi.

+0

install.packages ("ggplus") Cài đặt gói vào ... Cảnh báo trong install.packages: gói 'ggplus' không khả dụng (đối với phiên bản R 3.2.2) Mọi thứ cần giải quyết? –

+1

Ah, xin lỗi tôi không chắc chắn. Có lẽ bạn có thể đăng trên trang github và yêu cầu trợ giúp: https://github.com/guiastrennec/ggplus. Tôi vẫn còn trên phiên bản 3.2.1 và bây giờ bạn đã đề cập rằng tôi sẽ không nâng cấp. Hãy cho tôi biết nếu bạn giải quyết vấn đề. Cảm ơn. Pete – Pete900

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