2013-11-04 14 views
8

ggplot2에서 geom_XXX에 정의 된 투명도가 범례에 반영됩니다. 예를 들어 :ggplot2 범례의 점 투명도 제거

what we have

점은 매우 투명하기 때문에, 그들은 거의 전설에 볼 수 없습니다 :

df <- data.frame(x=runif(10000), z=ifelse(runif(10000) > 0.5, 'a', 'b')); df$y <- runif(10000); df$y[df$z == 'b'] <- cos(df$x[df$z == 'b']*10) 
ggplot(df) + geom_point(aes(x, y, color=z), alpha=0.1) 

는 다음과 같은 결과를 제공합니다.

what I want

어떻게 이런 일이 가능 : 그래프는 다음과 같습니다 그래서 나는 전설에서 포인트 투명성을 삭제 하시겠습니까?

답변

21

기능 guides()override.aes=을 사용하면 범례 항목 만 알파 값을 설정할 수 있습니다.

ggplot(df) + geom_point(aes(x, y, color=z), alpha=0.1)+ 
    guides(colour = guide_legend(override.aes = list(alpha=1))) 
+0

이 메커니즘을 알지 못했습니다. override.aes를 빨리 검색하면 몇 가지 예제가 추가로 제공됩니다. http://stackoverflow.com/q/16356052/17523 및 http://stackoverflow.com/q/5290003/17523이 질문의 중복입니다. –