R 当没有具有0值的数据时,从0开始绘制x轴

R 当没有具有0值的数据时,从0开始绘制x轴,r,ggplot2,R,Ggplot2,我正试图绘制一年中每天独特探测的数量。 我有这样的数据 我用这些代码总结了每天唯一检测的数量 unique_day <- data %>% group_by(Day,tag) %>% filter(Date==min(Date)) %>% slice(1) %>% ungroup() 得到这样一个情节 我似乎无法让情节从0开始。。。我想它总是从1开始,因为检测没有0值。。。我只有一个数据框,总结了有检测的日子,而不是没有检测的日子。我试过使用ylim,scal

我正试图绘制一年中每天独特探测的数量。 我有这样的数据

我用这些代码总结了每天唯一检测的数量

unique_day <- data %>% group_by(Day,tag) %>% filter(Date==min(Date)) %>% slice(1) %>% ungroup()
得到这样一个情节

我似乎无法让情节从0开始。。。我想它总是从1开始,因为检测没有0值。。。我只有一个数据框,总结了有检测的日子,而不是没有检测的日子。我试过使用ylim,scale_y__连续和coord_笛卡尔。。。有什么想法吗


有什么想法吗?

以下是解决问题的简单方法:

df_空%
分组单位(日期)%>%
总结(检测=总和(检测))

最后,您可以使用
ggplot2
-代码获得绘图。

您可以创建一个包含所有缺失天数和值0的data.frame,并将这两个值组合起来。我考虑过这一点,但在r中也不是最有经验的,也不知道如何做。如果将
sum%group\u by(Date)%%>%summary(Detections=n())替换为
使用
sum%group\u by(Date)%%>%summary(Detections=n()-1)
?这确实会产生零值,但会将每天的检测计数减少1,这是我不想要的。
sum <- unique_day %>% group_by(Date) %>% summarise(Detections=n())
sum[year(sum$Date)==2016,] %>%
  ggplot(aes(x=Date,y=Detections))+
  theme_bw(base_size = 16,base_family = 'serif')+
  theme(panel.grid.major = element_blank(),panel.grid.minor=element_blank())+
  geom_line(size=1)+
  scale_x_datetime(date_breaks = '1 month',date_labels = "%b",
                   limits = c(as.POSIXct('2016-01-01'),as.POSIXct("2016-12-01")))+
  ggtitle('DIS 2016')+
  theme(plot.title = element_text(hjust = 0.5))+
  xlab("Date")+
  scale_y_continuous(expand = c(0,0),limits = c(0,5))