2010-05-25 4 views
9

로그 스케일을 선택하면 ggplot2가 10^x와 같은 구분을 지정합니다. 나는 그렇게하지 않기를 바란다. 예를 들어, 다음의 코드는 1, 2, 5 등이 아닌 10^0, 10^0.3에서 진드기와 그래프를 표시한다 10^0.69 등ggplot2의 축 형식을 재정의하는 방법은 무엇입니까?

library(ggplot2) 
dfr <- data.frame(x = 1:100, y = rlnorm(100)) 
breaks <- as.vector(c(1, 2, 5) %o% 10^(-1:1)) 
p1 <- ggplot(dfr, aes(x, y)) + geom_point() + scale_y_log10(breaks = breaks) 
print(p1) 

I 맞춰 그 scale_y_log10formatter 인수를 추가 그 트릭을 할 것이지만, 나는 무엇을 논쟁에 넣을 지, 또는 옵션들이 문서화 될지 모를 것이다.

답변

8

scale_y_log10(breaks = breaks, labels = breaks 트릭을해야합니다.

+0

아. 방법을 안다면 쉽게. 감사. –

4

ggplot2 버전 0.9.0부터이 동작 (축 레이블을 10^0으로 포맷)은 더 이상 기본값이 아닙니다. 문제의 코드는 이제 원하는 결과를 제공합니다.

library(ggplot2) 
dfr <- data.frame(x = 1:100, y = rlnorm(100)) 
breaks <- as.vector(c(1, 2, 5) %o% 10^(-1:1)) 
p1 <- ggplot(dfr, aes(x, y)) + geom_point() + scale_y_log10(breaks = breaks) 
print(p1) 

enter image description here