我有4个实验组比例响应数据,以计算每个组2个不同的统计离散值。我想下图(我可以实现):řggplot geom_bar错误:供给到连续刻度
我获得该图用下面的代码:
Group<-c('a','b','c','d','a','b','c','d')
Statistic<-c('Mean','Mean','Mean','Mean','d','d','d','d')
Val<-c(.75,.83,.79,.69,.5,.02,.1,.3)
dfm2<-data.frame(cbind(Group,Statistic,Val))
ggplot(dfm2,aes(x = Group,y = Val)) +
geom_bar(aes(fill = Statistic),position = dodge',stat='identity')
然而,当我改变y轴的极限(为[0,1],因为我有比例)加入的代码行:
+ scale_y_continuous(limits=c(0, 1))
我得到
Error: Discrete value supplied to continuous scale
所以我明白这意味着我有一个非连续变量。我试图通过使用as.numeric()
和无数其他选项来转换我的统计变量,但无济于事。如果有人能够帮助我解决这个问题,并且/或者解释导致这个问题的原因,我会非常感激。
啊!谢谢 - 现在效果很好。即使我错误地使用了cbind(),我在创建数据框后调用了dfm2 $ Val <-as.numeric(dfm2 $ Val)。 str(dfm2)显示$ Val作为数字然后;但我仍然有错误。所以这就是我困惑的原因。关于为什么as.numeric()调整不起作用的任何想法? –
当我进行'as.numeric'转换并且绘制它时,我不会收到错误。但是,当您转换因子变量时,您需要先转换为字符,然后转换为数字,否则您将获得关卡的因子编号代码,而不是数据的实际值。比较'dfm2 $ Val2 = as.numeric(dfm2 $ Val)'和'dfm2 $ Val3 = as.numeric(as.character(dfm2 $ Val))''。 – eipi10