How to override ggplot2's axis formatting?
When you choose a log scale, ggplot2 formats the breaks like 10^x. I'd like it to not do that. For example, the code below should display a graph with ticks at 1, 2, 5 etc, not 10^0, 10^0.3, 10^0.69 etc.
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 guess that adding a formatter
argument to s开发者_如何学运维cale_y_log10
would do the trick, but I'm not sure what to put in the argument, or where the options might be documented.
scale_y_log10(breaks = breaks, labels = breaks
should do the trick.
As of ggplot2 version 0.9.0, this behavior (formatting the axis labels as 10^0) is no longer the default. The code in the question now gives the desired result.
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)
精彩评论