Я пытаюсь создать серию точечных графиков вместе, используя facet_grid. При этом я заметил, что geom_dotplot не отвечает на аргумент facet_grid scales = "free_y".
Вот пример кода:
require(ggplot2)
#Example data
set.seed(3)
df = data.frame(Gene = rep(c("a", "b", "c", "d"), each=20),
ToD = rep(c("Morning", "Evening"), times = 40),
Expression = c(runif(20, min=0, max=10),
runif(20, min=0, max=1),
runif(20, min=0, max=1000),
runif(20, min=0, max=100)))
#Box plots of example data
ggplot(df, aes(x = ToD, y = Expression)) +
geom_boxplot() +
facet_grid(Gene ~ ., scales = "free_y")
#Dot plots of example data
ggplot(df, aes(x = ToD, y = Expression)) +
geom_dotplot(binaxis = "y", stackdir = "centerwhole") +
facet_grid(Gene ~ ., scales = "free_y")
И вот версии R и ggplot2, которые я сейчас использую:
- R версия 3.2.2 (2015-08-14)
- ggplot2_1.0.1.9003
Поэтому, когда я создаю графические диаграммы, все работает так, как ожидалось, с масштабированием оси y соответственно для каждой строки фасета:
Тем не менее, точечные графики сохраняют одни и те же шкалы оси Y для каждой строки грани:
Я читал об известной ошибке в ggplot2, где coord_flip и facet_grid не работают вместе при указании свободных масштабов. Связано ли это с той же проблемой?
Пока я мог генерировать каждый из участков отдельно, а затем объединять их с grid.arrange, это громоздко для моих целей. Я пытаюсь выстроить эти точки с другими гранями, и я бы хотел избежать необходимости регенерировать всех тех, кто использует grid.arrange. Любые мысли?
Спасибо за любую помощь, которую вы можете предложить, и, пожалуйста, дайте мне знать, если я смогу предоставить дополнительные разъяснения.