2013-05-24 2 views
0

이동 :여러 별도의 플롯 ggplot2를 사용

qplot(carat, price, data = diamonds) + facet_grid(cut ~ color ~ clarity) 

나는 기대하지 꽤 무엇을. 명확성 레벨 당 플롯의 별도 그리드를 만드는 것 외에는 어떻게해야할까요?

qplot(carat, price, data = diamonds[diamonds$clarity=="SI2", ]) + facet_grid(cut ~ color) 
qplot(carat, price, data = diamonds[diamonds$clarity=="VS1", ]) + facet_grid(cut ~ color) 

등등.

캐스트를 사용하는 것이 완벽 할 것입니다.

답변

1

는 여기에 내가 어떻게 할 것인지의 :

base = qplot(carat, price, data = diamonds) + facet_grid(cut ~ color) 
lp = dlply(diamonds, "clarity", `%+%`, e1 = base) 

library(gridExtra) 
do.call(grid.arrange, lp) # all in one page 

# or multiple pages (with layout passed to grid.arrange) 
all = do.call(marrangeGrob, c(lp, ncol=2, nrow=1)) 
ggsave("multipage.pdf", all, width=12) 
2

세 개의 패싯 변수의 경우 대신 facet_wrap을 시도하십시오.

facet_wrap(~ cut + color + clarity) 

나는 질문을 다시 읽어했습니다. 실제로 여러 개의 음영을 원한다면 (음조로는 분명하지 않다), clarity 레벨로 반복하면됩니다. 당신이 경우

for(clarity in levels(diamonds$clarity)) 
{ 
    p <- qplot(carat, price, data = diamonds[diamonds$clarity == clarity, ]) + 
    facet_grid(cut ~ color) 
    print(p) 
} 

또는 for -loop 공포증,

l_ply(
    levels(diamonds$clarity), 
    function(clarity) 
    { 
    qplot(carat, price, data = diamonds[diamonds$clarity == clarity, ]) + 
     facet_grid(cut ~ color) 
    } 
) 

화면에 인쇄하는 경우는, 최초의 역사 기록을 켭니다. 그렇지 않으면 루프에 ggsave에 대한 호출을 포함시킵니다.

+0

이 내 시도와 같은 플롯을 생산 만 덜 유용하게 배열. – nacnudus

+0

두 가지 모두 완벽한 대답 이었지만 하나를 골라야했습니다. – nacnudus

관련 문제