2010-05-25 78 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) 

我想,添加formatter參數scale_y_log10會做的伎倆,但我不知道要把什麼放在論據,或選項可能會記錄。

回答

8

scale_y_log10(breaks = breaks, labels = breaks應該做的伎倆。

+0

啊。當你知道如何時很容易。謝謝。 – 2010-05-25 17:55:57

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