我有以下数据框:
rExp <- read.table(text=' samples variable value
UT F201/203 0.00255836649706595
siCTL F201/203 0.00911222024608249
siF201/203 F201/203 0.00473993831657716
UT F203 0.0108815320248598
siCTL F203 0.0224404694390467
siF201/203 F203 0.0115692755110973
UT F203/206 0.00392331892967821
siCTL F203/206 0.010474094476624
siF201/203 F203/206 0.00494613385979193', header=TRUE)
我使用以下代码创建分组条形图:
p_rEx<- ggplot (data=rExp, aes(x=samples, y=value)) + scale_x_discrete(limits=samples)
p_rEx<- p_rEx + geom_bar (aes(fill = variable),stat = "identity", position = "dodge", colour='black')
p_rEx<- p_rEx + labs(y="relative expression", x='')
p_rEx<- p_rEx + guides(fill=guide_legend(title=NULL))
p_rEx<- p_rEx + scale_fill_manual(values=gray.colors(3, start = 0.3, end = 0.9, gamma = 2.2, alpha = NULL))
p_rEx
结果如下:
我的问题是,刻度线是非常奇怪的数字。 我希望他们更“圆”,例如0.01而不是0.010474094476624
y轴需要保持连续,因为y值可以是10到1 * 10 ^ -10之间的任何值。
我尝试了类似+ scale_y_continuous(breaks= pretty_breaks())
的内容,但却给了我一个错误(Error: Discrete value supplied to continuous scale
)
有没有办法解决这个问题? 谢谢!
编辑: 我不认为这是这个问题的重复: How do I change the number of decimal places on axis labels in ggplot2?
在这里,我要求一个适用于所有y值的动态版本。所以动态调整小数位
答案 0 :(得分:1)
看起来你刚刚强调你的价值是一个因子变量而不是数字。因此,问题实际上是您的数据导入而不是ggplot。但你可以用
修复它ggplot(data=rExp, aes(x=samples, y=as.numeric(as.character(value))))