我试图将条形图的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")
没有运气
我也读过the 0.9 transition guide,但这似乎也不起作用。
我忘记了我尝试过的一个例子:
p&lt; - ggplot(data = DF,aes(x = label,y = num))+ geom_bar()+ scale_y_log10()
产生以下警告:
警告讯息: 在漂亮(trans(x),n,...):NaNs产生
答案 0 :(得分:8)
如果你想进行日志10比例使用
p + scale_y_log10()