想要绘制一个叠加柱状图:ggplot的scale_y_log10行为
set.seed(1)
my.df <- data.frame(param = runif(10000,0,1),
x = runif(10000,0.5,1))
my.df$param.range <- cut(my.df$param, breaks = 5)
require(ggplot2)
不记录y轴:
ggplot(my.df,aes_string(x = "x", fill = "param.range")) +
geom_histogram(binwidth = 0.1, pad = TRUE) +
scale_fill_grey()
但我想日志10 + 1转换y轴以使其更易于阅读:
ggplot(my.df, aes_string(x = "x", y = "..count..+1", fill = "param.range")) +
geom_histogram(binwidth = 0.1, pad = TRUE) +
scale_fill_grey() +
scale_y_log10()
这给:
在y轴上的刻度线没有意义。
我得到同样的行为,如果我日志10变换,而不是日志10 + 1:
ggplot(my.df, aes_string(x = "x", fill = "param.range")) +
geom_histogram(binwidth = 0.1, pad = TRUE) +
scale_fill_grey() +
scale_y_log10()
任何想法是怎么回事?
1.为什么不刻度线是有意义的吗? 2.在最后一行代码中我看不到任何转换。 –
抱歉,最后一行代码已更正。关于y轴刻度值,我认为它应该显示第一个图中显示的计数的log10,所以它们应该是:2.69,3,3.17,3.30而不是1,000。 10,000,000,100,000,000,000 – dan
y轴仍将以实际计数为单位,而不是这些计数的日志,但是y尺度会进行转换,以便每个因子10的物理距离相同。 – eipi10