开发者

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)

How to override ggplot2's axis formatting?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜