R和ggplot2:scale_x_continuous(trans =" log"),其中的刻度标签不在日志

时间:2016-07-22 11:46:53

标签: r ggplot2

我想用ggplot2创建一个在日志中有x轴的图,但x刻度标签不在日志中。说清楚:

假设有一些x值10.由于我使用scale_x_continuous(trans = "log"),它在x轴上显示为2.3(log(10) = 2.302585)。但我希望数字10出现,因为我只使用scale_x_continuous(trans = "log")来提高两个密度图的可比性,这是非常偏斜的。

1 个答案:

答案 0 :(得分:0)

对于你真正追求的东西还是有点困惑。也许这会帮助你了解ggplot2中幕后的内容。此外,log()trans="log"!== log10()trans="log10"

library(ggplot2)
library(tibble)
library(gridExtra)

set.seed(1492)
df <- data_frame(x=abs(rnorm(10) * 100) + 1,
                 y=seq(0, 1, length.out=10))

gg <- ggplot(df, aes(x, y)) + geom_point()
gg <- gg + geom_vline(xintercept=10)

gg1 <- gg + scale_x_continuous()
gg2 <- gg + scale_x_continuous(breaks=c(10, 50, 100, 150))
gg3 <- gg + scale_x_continuous(trans="log")
gg4 <- gg + scale_x_continuous(trans="log", breaks=c(10, 50, 100, 150))

grid.arrange(
  gg1,
  gg2,
  gg3,
  gg4,
  ncol=1
)

enter image description here