2013-09-25 5 views
0

를 통해 NMDS에 대한 타원 특정 모양과 선 종류를 추가이 매우 유용 질문과 답변에 대한 후속 조치로서 ggplot2

Color-coding 95% confidence ellipses for centroids

내가 ggplot 내 NMDS 플롯을 위해 성공적으로 오버레이 신뢰 타원을 관리 할 수 ​​있습니다. 내 네 가지 처리를 구별하기 위해 플롯에서 데이터 요소의 색상과 모양, 타원의 색상과 선 종류를 지정하고 싶습니다.

NMDS은 여기에 있습니다 :

http://pastebin.com/99WcC6wN

DAT2는 여기에 있습니다 :

http://pastebin.com/D93wrShT

다음 내가 시도 코드는대로 : 불행하게도, 단지

ggplot(data = NMDS, aes(MDS1, MDS2)) + geom_point(aes(color = group)) + 
    geom_path(data=Dat2, aes(x=NMDS1, y=NMDS2,colour=group), size=1,  linetype=2)+theme(axis.title.y=element_text(size=rel(1.1),vjust=0.2),axis.title.x=element_t ext(size=rel(1.1),vjust=0.2),axis.text.x=element_text(size=rel(1)),axis.text.y=element_text(size=rel(1)),text = element_text(size=13)) +scale_shape_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"), 
        values = c("17", "19","17", "19")) +scale_colour_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"), 
        values = c("blue", "blue","red", "red")) +scale_linetype_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"), 
        values = c("3", "1","3", "1")) 

포인트의 색 타원이 작동하는 것처럼 보입니다 - 타원의 선 종류와 데이터 점의 모양이 변경되지 않는 것 같습니다. 누구든지이 문제를 해결하는 방법에 대한 제안을 가지고 있습니까?

감사합니다.

답변

1

당신은 당신이 groupcolor를 매핑하는 것처럼, grouplinetypeshape를 매핑해야합니다. 변수의 이름이 두 데이터 세트에서 동일하기 때문에 실제로, 첫 번째 줄에 한 번 이러한 매핑을 모두 수행 할 수 있습니다

ggplot(data = NMDS, aes(MDS1, MDS2, color=group, linetype=group, shape=group)) 

은 물론, 당신은 다른 곳 colorlinetype 매핑을 삭제해야합니다. scale_linetype_manuallinetype 값을 숫자가 아닌 문자열로 지정해야합니다.

ggplot(data = NMDS, aes(MDS1, MDS2, color=group, linetype=group, shape=group)) + 
    geom_point() + 
    geom_path(data=Dat2, aes(x=NMDS1, y=NMDS2), size=1) + 
    theme(axis.title.y=element_text(size=rel(1.1),vjust=0.2),axis.title.x=element_text(size=rel(1.1),vjust=0.2),axis.text.x=element_text(size=rel(1)),axis.text.y=element_text(size=rel(1)),text = element_text(size=13)) + 
    scale_shape_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"), values = c(17, 19,17, 19)) + 
    scale_colour_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"), values = c("blue", "blue","red", "red")) + 
    scale_linetype_manual(name = "Treatment", labels = c("W+N-", "W+NC", "WCN-", "WCNC"), values = c(3, 1,3, 1)) 

the desired plot

+0

가 대단히 감사합니다 : 결국, 당신이 뭔가를해야합니다! 내가 지정하려고했던 것처럼 포인트 모양을 변경하는 방법이 있습니까? 이것들에 대해서 W + N과 WCN은 삼각형을 가지고 W + NC와 WCNC는 일반적인 둥근 점을 가지기를 원합니다 ... – Sarah

+0

예, 관심있는 변수에'shape'을 매핑하면됩니다. 나는 당신을 보여주기 위해 내 글을 편집했다. – Peyton

+0

아, 방금 사용했습니다 : geom_point (aes (shape = group)) 건배! – Sarah