2011-08-23 2 views
4

데이터 세트에서 원하는 플롯을 만들기 위해 ggplot2를 만들었지 만 포인트를 레이블 지정하는 방법을 알 수는 없습니다. 이 같은ggplot2가 내게 범례를 만들도록 설득하려면 어떻게해야합니까?

을 감안할 때 데이터를보고 뭔가 :이 같은이 두 가지를 비교하는 그래프를 만들 수 있습니다

sample <- data.frame(rowid=seq(100), a=runif(100), b=runif(100, .5, 1.5)) 

는 (내 진짜 더 나은 라벨 주어진 덜 재미 보이지만, 이것은 좋은 근사치를 않습니다) :

ggplot(data=sample) + 
     geom_point(aes(rowid, a), color="#990000", alpha=0.4) + 
     geom_smooth(aes(rowid, a), color='#990000') + 
     geom_point(aes(rowid, b), color='#000099', alpha=0.4) + 
     geom_smooth(aes(rowid, b), color='#000099') + 
     labs(x='Trial', y='Time') 

빨강과 파랑이 무엇인지 표시하는 범례를 표시하려면 어떻게해야합니까?

편집 티스트에서 코멘트에

덕분에, 지금은 다음과 같습니다

wide = melt(sample, id="rowid") 

ggplot(data=wide) + 
     geom_point(aes(rowid, value, color=variable), alpha=0.1) + 
     scale_alpha(0.3) + 
     scale_colour_manual(name="Variables", values=c("b"="#990000", "a"="#000099")) + 
     geom_smooth(aes(rowid, value, color=variable)) + 
     labs(x='Trials', y='Time') 
+3

생각은 긴 형식 data.frame와 함께 작업하는 것입니다, 'melt (sample, id = "rowid")'와 같은 것입니다. 그런 다음'aes (rowid, value, color = variable)'를 할 수 있습니다. – baptiste

+0

당신은 내 질문에 잘 대답했지만, 당신을 승자로 표시 할 수는 없습니다. :) 이것은 내 포인트와 라인에 대해 독립적으로 색상과 알파를 제어하는 ​​데 약간 도움이되는 것 같지만. – Dustin

+0

확신은 항상 '올바른 주장'에 관한 것입니다. –

답변

5

티스트는 reshape2 패키지에서 melt를 사용하여 제시함으로써 올바른 방향을 지적했다.

포인트의 알파를 제어하고 개별적으로 부드럽게하려면 각 기하 구조에서 원하는 알파를 지정하기 만하면됩니다. 알파가 어떤 미학에도 매핑되지 않았기 때문에 예제 코드의 scale_alpha 문은 아무런 작업도 수행하지 않으므로 제거했습니다. 당신의 매핑이 모든 계층에 동일 때문에, 이것은 ggplot PARAMATERS이 아닌 기하 구조 매개 변수에 지정하는 것이 더 쉽습니다 :

sample <- data.frame(rowid=seq(100), a=runif(100), b=runif(100, .5, 1.5)) 
wide = melt(sample, id="rowid") 

ggplot(data=wide, aes(x=rowid, y=value, color=variable)) + 
    geom_point(alpha=0.1) + 
    scale_colour_manual(name="Variables", values=c("b"="#990000", "a"="#000099")) + 
    geom_smooth(alpha=0.8) + 
    labs(x='Trials', y='Time') 

enter image description here

+0

감사합니다. 당신은 내 문제의 나머지 부분을 해결하고 나에게 많은 도움이되는 팁을주었습니다. – Dustin

관련 문제