Есть ли минимальное количество значений, необходимых для facet_wrap? - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь использовать facet_wrap, и это не всегда отображается.

Я создал воспроизводимый пример, который генерирует информацию для оценки класса по предмету. В первом примере я могу сказать, что он работает просто отлично, и я вижу скрипку для каждого предмета (математика, чтение и письмо), но во втором примере ничего не отображалось для предмета «Математика».

Единственное изменение, которое я сделал между первым и вторым примером, - это удаление одного «математического» наблюдения для каждого класса из данных. Может быть, для отображения графика требуется минимальное количество значений? Это причина? я могу обойти это ограничение? (Я не хочу создавать ложную информацию, я хотел бы использовать информацию как есть).

Кроме того, во втором примере я получаю следующее предупреждение, может быть, это поможет:

In max (плотность данных $): нет не пропущенных аргументов для max;return -Inf

info <- data.frame("Class" = c("A","A","A","A","A","A","A","A","A",
                                   "B","B","B","B","B","B","B","B","B",
                                   "C","C","C","C","C","C","C","C","C",
                                   "D","D","D","D","D","D","D","D","D"), 
                    "Subject" = c("Math","Math","Math","Reading","Reading","Reading","Writing","Writing","Writing",
                                  "Math","Math","Math","Reading","Reading","Reading","Writing","Writing","Writing",
                                  "Math","Math","Math","Reading","Reading","Reading","Writing","Writing","Writing",
                                  "Math","Math","Math","Reading","Reading","Reading","Writing","Writing","Writing"),
                        "Score" = c(round(runif(36,0,100))))

library("ggplot2")
ggplot(data = info, aes(x = Class, y = Score)) + 
  geom_violin(trim = FALSE) +
  facet_wrap(~Subject)

# Same as info, just one less "Math" observation per class
infoLess <- data.frame("Class" = c("A","A","A","A","A","A","A","A",
                                   "B","B","B","B","B","B","B","B",
                                   "C","C","C","C","C","C","C","C",
                                   "D","D","D","D","D","D","D","D"), 
                   "Subject" = c("Math","Math","Reading","Reading","Reading","Writing","Writing","Writing",
                                 "Math","Math","Reading","Reading","Reading","Writing","Writing","Writing",
                                 "Math","Math","Reading","Reading","Reading","Writing","Writing","Writing",
                                 "Math","Math","Reading","Reading","Reading","Writing","Writing","Writing"),
                   "Score" = c(round(runif(32,0,100))))

ggplot(data = infoLess, aes(x = Class, y = Score)) + 
  geom_violin(trim = FALSE) +
  facet_wrap(~Subject)

Результат первого графика

Result of the first plot

Результат второго графика

Result of the second plot

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