2012-07-30 7 views
2

안녕하세요 ggplot에 추가 범례를 추가 할 수 있습니까? 코드플롯에 추가 범례를 추가하십시오.

d <- melt(as.matrix(data.frame(y1=1/(1:10),y2=1/(10:1)))) 
ggplot(d, aes(x=Var1, y=value,fill=Var2)) + geom_bar(stat="identity",position='dodge') 

이 내 dataframe의 이름이 포함 된 좋은 전설을 생성 다음 좋아요 . 그러나 데이터에서 생성 된 몇 가지 추가 정보가 들어있는 extralend를 넣는 것이 가능합니다.

는 표준 R, 나는이 나를 위해 작동하는 것 같다

d<-data.frame(y1=1/(1:10),y2=2*1/(10:1)) 
barplot(t(d),beside=T) 
legend("top",paste("sums:",apply(d,2,sum))) 

감사

+0

당신은 '주석'으로, 플롯 패널에, 또는 디바이스 윈도우의 어디에서나'grid.text'로 텍스트를 추가 할 수 있습니다. – baptiste

답변

2

같은 추가 범례를 추가합니다.

plot.new() 
    d <- melt(as.matrix(data.frame(y1=1/(1:10),y2=1/(10:1)))) 
    ggplot(d, aes(x=Var1, y=value,fill=Var2)) + 
    geom_bar(stat="identity",position='dodge') 

흥미 진진한 내용.

legend('top',paste("sums:",tapply(d$value,d$Var2,sum))) 

용융 데이터에서 작동하도록 적용 문이 변경되었습니다.

저는 ggplot 솔루션에 대해 알고 있지 않지만 한 가지를보고 싶습니다.

+0

두 번째 부분을 예제 범례 ('top', paste ("sums :", tapply (d $ value, d $ Var2, sum))와 함께 사용할 수 없습니다. strwidth의 오류 (범례, 단위 = 사용자 ", cex = cex, font = text.font) : plot.new가 아직 호출되지 않았습니다. – monkeyking

+0

죄송합니다. 위의 게시물을 편집하여 'plot.new()'를 먼저 호출합니다. – Seth

+0

그래, 먼저 plot.new를 호출하여 ggplot의 기본 그래픽을 juse 할 수 있다는 것을 알지 못했습니다. – monkeyking

관련 문제