首页 > 解决方案 > 从直方图中丢弃的数据

问题描述

我正在尝试制作一个简单的直方图,显示按日期进入系统的鱼的数量。鱼通过两个位置进入系统,我希望为每个站点着色直方图的条形。但是,当我添加填充美学时,7 月 7 日的数据(来自 A 站的唯一条目)被删除。这就是没有填充美学的外观......

在此处输入图像描述

这是填充...在此处输入图像描述

这是我没有填充的代码:

  geom_histogram(aes(monthday), stat = 'count') +
  theme_bw() + labs(x = "Date", y = "Fish Entry") + theme(axis.text = element_text( size = 12))

与:

  geom_histogram(aes(monthday, fill = Station2), stat = 'count') +
  theme_bw() + labs(x = "Date", y = "Fish Entry") + theme(axis.text = element_text( size = 12))

数据框“first”有两列:monthday(POSIXct, ymd) 和 Station2 (Factor A,G)

这是我的 ASCII 数据:

structure(list(monthday = structure(c(1529539200, 1529625600, 
1529625600, 1529712000, 1529712000, 1529798400, 1529798400, 1529884800, 
1529884800, 1529971200, 1529971200, 1529971200, 1529971200, 1529971200, 
1529971200, 1529971200, 1529971200, 1529971200, 1530057600, 1530057600, 
1530057600, 1530057600, 1530057600, 1530057600, 1530057600, 1530144000, 
1530230400, 1530230400, 1530316800, 1530403200, 1530489600, 1530921600
), class = c("POSIXct", "POSIXt"), tzone = "GMT"), Station2 = structure(c(2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L), .Label = c("A", 
"G"), class = "factor")), class = "data.frame", row.names = c(43424L, 
43504L, 43774L, 43778L, 44055L, 44327L, 44328L, 44511L, 44677L, 
44796L, 44830L, 44921L, 44942L, 45373L, 45394L, 45449L, 45817L, 
45825L, 46104L, 46106L, 46625L, 47214L, 47229L, 47389L, 47544L, 
50186L, 52027L, 54694L, 55437L, 61670L, 67598L, 96186L))

标签: rggplot2histogram

解决方案


与此同时,快速破解将是:

ggplot(first,aes(x=as.Date(monthday), fill = Station2))+
geom_histogram(stat = 'count') +
theme_bw() + labs(x = "Date", y = "Fish Entry") + 
theme(axis.text = element_text( size = 12))

在此处输入图像描述

我认为您需要as.Date(monthday),因为当您更改monthday为 Date 时,它​​将输入视为一整天(POSIXct 可能仅将其视为当天的一小部分)。因为 x 轴是连续的,所以条形的宽度A非常窄,以至于当您使用fill = Station2. 不是 100% 确定为什么fill会导致A消失,但这种解决方法应该会有所帮助。


推荐阅读