ggplot не отображает график в окне графика или окна просмотра, а представляет собой элемент списка в среде - PullRequest
2 голосов
/ 18 апреля 2020

Я пытаюсь создать сгруппированную гистограмму, аналогичную изображенной на рисунке ниже.

This is the bar plot that I am trying to emulate

Я пытался адаптировать приведенный ниже код для моего графика для моего "SRKWyear_final" df, но вместо генерации графика в "графике" "или" окно просмотра "Я вместо этого вижу свой график в окружении в виде списка из 9 элементов. Я не уверен, почему это происходит, потому что я не получаю никакой ошибки, но я также не получаю никакой информации. Три типа заполнения взяты из трех уникальных значений столбца «quadID». Для цветов заливки я хотел, чтобы "хаки1" равнялся go со значениями "Transit" от quadID, "darkorange1" до go со значениями "смежных" и "red3" до go со значениями "ZOI". Вот код, который я пытался использовать:

Plot1 <- ggplot(SRKWyear_final, aes(x=as.numeric(Year), y=whale_days, fill=quadID)) +   
  geom_col(position = position_dodge2(width = 0.9, preserve = "single")) +
  theme_bw() +
  theme(axis.title = element_blank(),
        legend.title = element_blank(),
        panel.grid = element_blank(),
        legend.text = element_text(margin = margin(l = 3), hjust = 0), 
        plot.title = element_text(hjust = 0.5, size = 12)) +
  scale_fill_manual(values = c("khaki1", 
                               "darkorange1", 
                               "red3")) +
  scale_x_discrete(drop = FALSE) +
  ggtitle("Whale Days by Year")

show(Plot1)

Вот мой фрейм данных:

> head(SRKWyear_final)
# A tibble: 6 x 3
# Groups:   Year [4]
   Year quadID   whale_days
  <dbl> <chr>         <dbl>
1  2009 Adjacent          1
2  2009 Transit         165

> dput(droplevels(SRKWyear_final))
structure(list(Year = c(2009, 2009, 2010, 2010, 2011, 2012, 2012, 
2013, 2014, 2014, 2015, 2015, 2016, 2017, 2018, 2009, 2010, 2011, 
2012, 2013, 2014, 2015, 2016, 2017, 2018, 2011, 2013, 2016, 2017, 
2018), quadID = c("Adjacent", "Transit", "Adjacent", "Transit", 
"Transit", "Adjacent", "Transit", "Transit", "Adjacent", "Transit", 
"Adjacent", "Transit", "Transit", "Transit", "Transit", "ZOI", 
"ZOI", "ZOI", "ZOI", "ZOI", "ZOI", "ZOI", "ZOI", "ZOI", "ZOI", 
"Adjacent", "Adjacent", "Adjacent", "Adjacent", "Adjacent"), 
    whale_days = c(1, 165, 1, 114, 157, 1, 226, 152, 6, 240, 
    4, 158, 224, 248, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0)), row.names = c(NA, -30L), groups = structure(list(
    Year = c(2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 
    2017, 2018), .rows = list(c(1L, 2L, 16L), c(3L, 4L, 17L), 
        c(5L, 18L, 26L), c(6L, 7L, 19L), c(8L, 20L, 27L), c(9L, 
        10L, 21L), c(11L, 12L, 22L), c(13L, 23L, 28L), c(14L, 
        24L, 29L), c(15L, 25L, 30L))), row.names = c(NA, -10L
), class = c("tbl_df", "tbl", "data.frame"), .drop = TRUE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))

Любое понимание будет высоко ценится!

1 Ответ

0 голосов
/ 18 апреля 2020

Вот именно то, что я сделал. Ваша проблема не воспроизводима. У вас могут быть некоторые изменения в настройках RStudio.

library(ggplot2)
SRKWyear_final<- 
structure(list(Year = c(2009, 2009, 2010, 2010, 2011, 2012, 2012, 
                        2013, 2014, 2014, 2015, 2015, 2016, 2017, 2018, 2009, 2010, 2011, 
                        2012, 2013, 2014, 2015, 2016, 2017, 2018, 2011, 2013, 2016, 2017, 
                        2018), quadID = c("Adjacent", "Transit", "Adjacent", "Transit", 
                                          "Transit", "Adjacent", "Transit", "Transit", "Adjacent", "Transit", 
                                          "Adjacent", "Transit", "Transit", "Transit", "Transit", "ZOI", 
                                          "ZOI", "ZOI", "ZOI", "ZOI", "ZOI", "ZOI", "ZOI", "ZOI", "ZOI", 
                                          "Adjacent", "Adjacent", "Adjacent", "Adjacent", "Adjacent"), 
               whale_days = c(1, 165, 1, 114, 157, 1, 226, 152, 6, 240, 
                              4, 158, 224, 248, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                              0, 0, 0)), row.names = c(NA, -30L), groups = structure(list(
                                Year = c(2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 
                                         2017, 2018), .rows = list(c(1L, 2L, 16L), c(3L, 4L, 17L), 
                                                                   c(5L, 18L, 26L), c(6L, 7L, 19L), c(8L, 20L, 27L), c(9L, 
                                                                                                                       10L, 21L), c(11L, 12L, 22L), c(13L, 23L, 28L), c(14L, 
                                                                                                                                                                        24L, 29L), c(15L, 25L, 30L))), row.names = c(NA, -10L
                                                                                                                                                                        ), class = c("tbl_df", "tbl", "data.frame"), .drop = TRUE), class = c("grouped_df", 
                                                                                                                                                                                                                                              "tbl_df", "tbl", "data.frame"))

ggplot(SRKWyear_final, aes(x=as.numeric(Year), y=whale_days, fill=quadID)) +   
  geom_col(position = position_dodge2(width = 0.9, preserve = "single")) +
  theme_bw() +
  theme(axis.title = element_blank(),
        legend.title = element_blank(),
        panel.grid = element_blank(),
        legend.text = element_text(margin = margin(l = 3), hjust = 0), 
        plot.title = element_text(hjust = 0.5, size = 12)) +
  scale_fill_manual(values = c("khaki1", 
                               "darkorange1", 
                               "red3")) +
  scale_x_discrete(drop = FALSE) +
  ggtitle("Whale Days by Year")

PS Это эквивалентно первому назначению объекта, а затем распечатывает объект, вызывая его напрямую или print

Создано в 2020-04-18 пакетом Представление (v0.3.0)

...