Данные удаляются из гистограммы - PullRequest
2 голосов
/ 16 мая 2019

Я пытаюсь составить простую гистограмму, показывающую количество рыб, попадающих в систему по дате. Рыбы входят в систему через два места, и я хочу, чтобы столбцы гистограммы были цветными для каждой станции. Однако, когда я добавляю эстетику заполнения, данные за 7 июля (единственная запись со станции А) удаляются. Вот так это выглядит без эстетики заливки ...

enter image description here

И это с заливкой ... enter image description here

Вот мой код без заливки:

  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" имеет два столбца: день месяца (POSIXct, y-m-d) и Station2 (фактор 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))

1 Ответ

1 голос
/ 16 мая 2019

Тем временем можно сделать быстрый взлом:

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))

enter image description here

Я думаю, вам нужно as.Date(monthday), потому что когда вы меняете monthday до настоящего времени, он обрабатывает входные данные как целый день (который POSIXct может рассматривать как небольшую часть этого дня).Поскольку ось x является непрерывной, ширина полосы для A настолько узка, что не отображается на графике при использовании fill = Station2.Не уверен на 100%, почему fill приводит к исчезновению A, но этот обходной путь должен быть полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...