我正在尝试将条形图的 y 轴转换为对数刻度(即每个刻度之间的对数距离)。
一些虚拟数据:
DF <- data.frame(num=c(1,2,3),label=c("a","b","c"))
我尝试了以下示例:
p <- ggplot(data=DF,aes(x=label,y=num)) + geom_bar() +
scale_y_continuous(trans = 'log10',
breaks=trans_breaks("log10",function(x) 10^x),
labels=trans_format("log10",math_format(10^.x)))
这仅记录转换标签,但不转换刻度:
p <- ggplot(data=DF,aes(x=label,y=num)) + geom_bar() + coord_trans(y="log10")
这根本没有绘制任何东西:
p <- ggplot(data=DF,aes(x=label,y=num),y="log")
也没有运气
我也阅读了 0.9 过渡指南 ,但这似乎也不起作用。
编辑:
我忘了包括一个我试过的例子:
p <- ggplot(data=DF,aes(x=label,y=num)) + geom_bar() + scale_y_log10()
这会产生以下警告:
警告消息:在 pretty(trans(x), n, ...) 中:产生了 NaN