2013-05-15 4 views
65

Khi sử dụng geom_histogram có lỗiKhi sử dụng "geom_histogram" có lỗi "unit (tic_pos.c," mm "): 'x' và 'units' phải có độ dài> 0". Tại sao

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

Tại sao?

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

Điều này cho thấy biểu đồ thanh màu đen. Tuy nhiên, khi tôi muốn nhóm dữ liệu bằng cách p để làm cho cốt truyện đầy màu sắc, tôi đã thêm fill=p,

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

Các tôi bị như sau:

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

gì vậy ??

Khung dữ liệu là:

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 

Trả lời

89

Bạn đã nhận lỗi này vì p giá trị là số trong khung dữ liệu của bạn, nhưng trong trường hợp này cho fill= bạn cần các giá trị rời rạc như thanh được xếp chồng lên nhau và sẽ được tô màu theo p. Chỉ cần sử dụng as.factor() xung quanh p.

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

Cảm ơn bạn Didzis! – Jada