调用fill =美观时,如何防止geom_histogram丢弃数据?

时间:2019-01-05 14:59:16

标签: r ggplot2 histogram fill

我想用2类数据(事件= 0与事件= 1)生成直方图。就我而言,只有Event = 0的情况。如果我不调用'fill ='美学,则直方图会正确绘制,但是当我调用'fill'时,将丢弃Event = 0情况。当我连续缩放Y时,问题消失了,但是我想使用log10缩放。进行演示(我正在使用R,RSTudio和相关软件包的当前版本):

library(ggplot2)

Dur<-c(200,200,200,200,10,20,30)
Event<-c(0,1,1,1,1,1,1)
a<-data.frame(cbind(Dur,Event))
a$Event1<-as.character(a$Event)

p<-ggplot(data=a,aes(x=Dur,fill=Event1))+
  geom_histogram(color='black')+
  scale_fill_manual(values=c("red","blue"),name='Censor')+
  scale_y_log10()+
  labs(title='Attempt Duration: WAL',x="Duration (s)")
p

Dropped value for event=0 相比之下,这些情节正确

p<-ggplot(data=a,aes(x=Dur))+
  geom_histogram(color='black')+
  scale_fill_manual(values=c("red","blue"),name='Censor')+
  scale_y_log10()+
  labs(title='Attempt Duration: WAL',x="Duration (s)")
p

No fill

p<-ggplot(data=a,aes(x=Dur,fill=Event1))+
  geom_histogram(color='black')+
  scale_fill_manual(values=c("red","blue"),name='Censor')+
  #scale_y_log10()+
  labs(title='Attempt Duration: WAL',x="Duration (s)")
p

No log-scale

同样,如果我添加第二个'0'大小写,则都可以正确绘制。有想法吗?

1 个答案:

答案 0 :(得分:1)

'Event'= 0未被删除。 log(1)等于0