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

Jad*_*ada 65 r ggplot2

使用时geom_histogram有错误

unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0. 
Run Code Online (Sandbox Code Playgroud)

为什么?

p4<-ggplot(BCIcor,aes(x=cor))+geom_histogram(binwidth = 0.2)    
Run Code Online (Sandbox Code Playgroud)

这显示了黑色条形图.但是,当我想将数据分组p以使情节丰富多彩时,我补充道fill=p,

p4<-ggplot(BCIcor,aes(x=cor,fill=p))+geom_histogram(binwidth = 0.2)
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

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

怎么了??

数据框是:

  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
Run Code Online (Sandbox Code Playgroud)

Did*_*rts 89

您收到此错误,因为p数据框中的数值是数字,但在这种情况下,fill=您需要离散值,因为条形堆叠并将根据颜色进行着色p.只是as.factor()四处使用p.

ggplot(BCIcor,aes(x=cor,fill=as.factor(p)))+geom_histogram(binwidth = 0.2)
Run Code Online (Sandbox Code Playgroud)