当您选择对数刻度时,ggplot2会格式化10 ^ x之类的中断。我希望不这样做。例如,下面的代码应该显示一个刻度为1,2,5等的图形,而不是10 ^ 0,10 ^ 0.3,10 ^ 0.69等。
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
参数可以解决这个问题,但我不确定在论证中放什么,或者可能会记录选项。
答案 0 :(得分:8)
scale_y_log10(breaks = breaks, labels = breaks
应该可以解决问题。
答案 1 :(得分: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)