我试图将条形图的y轴转换为对数刻度(即每个刻度之间的对数距离)。ggplot2 0.9.1:对数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")
这没有按” t绘制任何东西:
p <- ggplot(data=DF,aes(x=label,y=num),y="log")
没有运气或者
我也看过the 0.9 transition guide,但似乎没有任何工作。
编辑:
忘了包括一个例子我尝试:
p < - ggplot(数据= DF,AES(X =标签,Y = NUM))+ geom_bar()+ scale_y_log10( )
其产生以下警告:
警告消息: 在相当(反式(X)中,n,...):NaN的产生
对条形图使用日志规模是一个坏主意,因为酒吧测量从零的距离。改为使用点图。 http://www.perceptualedge.com/articles/b-eye/dot_plots.pdf – 2012-07-25 09:45:49
我尝试使用点图,它与伪数据一起工作。但是当我切换到20865到127135230的实际数据时,y轴标签只显示10^5 – demodw 2012-07-25 11:19:30
您是否尝试使用对数y刻度的点图?它应该给你更多的轴标签与这种数据范围。如果没有,您可以在'scale_y_log10'中手动指定'labels'参数。 – 2012-07-25 12:43:53