2012-05-18 2 views
21

이 사람이 과거에 화를 냈을 것입니다.이 사람이 복제본 인 경우이를 용서해 주시면 삭제하겠습니다. 전설에 걸쳐 슬래시를 geom_bar 사용하면 성가신 수 있습니다. 예컨대 :ggplot 범례 슬래시

x <- c("a","b") 
y <- c(1,2) 
df <- as.data.frame(cbind(x,y)) 
a <- ggplot(df,aes(x=x,y=y,fill=x)) 
a + geom_bar(colour="black") + scale_fill_manual(values=c("white", "black")) 
내가 먼저 예를 들어, 색상없이 막대를 세우고, 주위에이 작품을 사용하여 색상 막대를 사용

enter image description here

a + geom_bar() + geom_bar(colour="black",show_guide=FALSE) + 
scale_fill_manual(values=c("white", "black")) 

그러나 채우기가 흰색 인 경우 테두리가없는 범례에서 만족스럽지 않은 빈 흰색 상자가 남습니다. 예 :

enter image description here

내가 수동으로 그래픽 소프트웨어를 사용하여 과거에이 문제를 해결 한하지만 지금이 여기에 질문을 충분히 사람들에게 유용 할 생각합니다. ggplot 검은 색 외곽선 만 슬래시없이 범례를 그릴 수 있습니까?

+1

큰 질문 +1 –

답변

13

이,

a + geom_bar() + geom_bar(colour="black",show_guide=FALSE) + 
scale_fill_manual(values=c("white", "black")) + 
opts(legend.key = theme_rect(fill = 'black')) 

나에게이 준 this siteenter image description here 감사합니다.

Alos의 경우 fill 대신 colour을 사용하면 동일한 결과를 얻습니다 (하나보다 낫다는 주장이 제기 될 수 있음).

a + geom_bar() + geom_bar(colour="black",show_guide=FALSE) + 
scale_fill_manual(values=c("white", "black")) + 
opts(legend.key = theme_rect(colour = 'black')) 

중요 : ggplot2 opts의 현대 버전에서 사용되지 않으며 theme로 대체하고, theme_rectelement_rect로 대체되었습니다.

+2

'opts (legend.key = theme_rect' 그것은 매우 간단합니다! –

+0

@ user1317221_G, 그것의 아름다움입니다. –

+0

나는 기꺼이 고치게됩니다. +1 –

3

아니 그게 그것의 개요를 제공이야. 흰색 대신 회색을 사용하면 (트릭 따라) 더 구별 될 수 있습니다. 범례에 배경색을 추가하여 더 구별 가능하게하고 흰색으로 유지할 수도 있습니다. 자세한 내용은이 페이지의 하단을 참조하십시오

http://wiki.stdout.org/rcookbook/Graphs/Legends%20(ggplot2)/

내가이 일을 덜 hackish 방법이 있었으면.

+0

나는 요리 책의 해결책이 더 일반적이라고 생각한다. 이 질문은 슬래시를 제거하는 것보다 legend.key 문제에 대해 더 많이 다루고 있습니다. – marbel

+2

@Martin 1 년 넘게 게시물에 응답 했으므로 요리 책을 포함하여 그 이후로 조금씩 바뀌 었습니다. 또한 슬래시를 제거하는 것과 관련이 있습니다. 질문의 제목과 내용을보십시오. 당시 멋진 전설적인 것들은 존재하지 않았거나 방금 소개되었습니다 (ggplot2 0.9.0). –

+1

나는 게시물이 오래되었다는 것을 이해한다. 문제는이 똑같은 문제를 다루어야하고 요리 책은 좀 더 일반적인 대답을 주었다. 내 말은, 나는 당신의 연결을 따랐고 그것은 받아 들여진 대답 이상으로 나를 도왔다. – marbel