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

使用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 

你得到这个错误是因为你的数据框中的p值是数字,但是在这种情况下,对于fill=你需要离散值,因为条被堆叠,并且会根据p来着色。 只需使用as.factor()围绕p

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