当使用“geom_histogram”时出现错误“unit(tic_pos.c,”mm“):'x'和'units'必须具有长度> 0”。为什么

时间:2013-05-15 15:44:01

标签: r ggplot2

使用geom_histogram时出现错误

unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0. 

为什么?

p4<-ggplot(BCIcor,aes(x=cor))+geom_histogram(binwidth = 0.2)    

这显示了黑色条形图。但是,当我想按p对数据进行分组以使情节丰富多彩时,我添加了fill=p

p4<-ggplot(BCIcor,aes(x=cor,fill=p))+geom_histogram(binwidth = 0.2)

我得到了以下内容:

error :"unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0".

怎么了?

数据框为:

  cor        pvalue   p 

1  0.87882370 0.049710 2       
2 -0.83041880 0.081660 1         
3 -0.12989750 0.835100 1        
4 -0.75309860 0.141700 1        
5 -0.88553450 0.045680 2

1 个答案:

答案 0 :(得分:89)

您收到此错误是因为p值在您的数据框中是数字的,但在{0}} fill=中,您需要离散值,因为条形图会被堆叠并根据p进行着色。只需在as.factor()周围使用p

ggplot(BCIcor,aes(x=cor,fill=as.factor(p)))+geom_histogram(binwidth = 0.2)