ggplot2 0.9.1:带条形图的对数y轴刻度

时间:2012-07-25 09:26:46

标签: r ggplot2

我试图将条形图的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产生

1 个答案:

答案 0 :(得分:8)

如果你想进行日志10比例使用

p + scale_y_log10()