【发布时间】:2014-03-10 08:28:01
【问题描述】:
我想使用 ggplot 绘制条形图。我使用 scale_y_log10 重新缩放 y 轴。使用下面的脚本时,我得到了双向(向上和向下)的条形,并且条形从 1 开始。我知道这是因为 log10(1)=0。
ggplot (data=dat, aes(x=Col2,y=Col4,fill=Col3,group=Col1))+
geom_bar(stat="identity")+ facet_grid(.~Col1,scales="free_x",space="fixed")+
ylab("")+xlab("")+scale_fill_discrete("")+
scale_y_log10("#Counts",breaks=c(.1,1,10,100,1000),expand=c(0,0))+
theme_bw()+
theme(axis.text.x=element_text(angle=45,hjust=1,vjust=1))
现在,我想强制条形从较低的值(例如 0.1 或 0.01)开始,并使所有条形向上。我怎样才能做到这一点?试图找到相关的帖子和信息,但没有运气。如果已经有此类信息,有人可以指导我吗?
编辑:我想使用 scale_y_log10 因为大多数条形图都很低,而有些条形图非常高。如果我使用 scale_y_continuous,较短的条将无法正常显示。
【问题讨论】:
-
由于某些 y 值变为负数 - 例如 - log10(0.1) 为 -1,因此您会得到不同方向的条形图。
-
只是一个快速的想法 - 您是否考虑过转换您的数据,例如添加一个常数,以便您的最小值为 1 并记录它们将从 0 开始的条形图?
-
Didzis 我明白这个事实。 Sarunas 这是个好主意,但标签仍将保持不变。如果有其他解决方案,我可能会等待一段时间。如果我没有得到任何,我可能会这样做。无论如何,谢谢!