Я читал ggplot2
документацию по обеим функциям. Мне было интересно, в чем разница и какая ситуация будет правильной для использования каждой функции ( facet_wrap()
и facet_grid()
).
library(ggplot2)
p <- qplot(displ, hwy, data = mpg)
p + facet_wrap(~ cyl)
p + facet_grid(~ cyl)
Я привожу этот небольшой пример в качестве отправной точки. Разница, кажется, заключается в том, что обертка делает графики более автономными, а сетка делает все вместе.
источник
facet_wrap
также может принимать две переменные.Для графиков с одной переменной вы можете использовать
facet_grid()
илиfacet_wrap()
.facet_wrap(~variable)
вернет симметричную матрицу графиков для количества уровнейvariable
.facet_grid(.~variable)
вернет грани, равные уровням,variable
распределенным по горизонтали.facet_grid(variable~.)
вернет грани, равные уровням,variable
распределенным по вертикали.источник
facet_wrap(~variable)
а почему нетfacet_wrap(variable~)
?Цитата в основном из книги ggplot2, стр. 148f.
Есть три типа фаски:
facet_null()
: одиночный сюжет, значение по умолчанию.facet_wrap()
: "оборачивает" 1d ленту панелей на 2d.facet_grid()
: создает 2-мерную сетку панелей, определяемых переменными, которые образуют строки и столбцы.Фацетное обертывание
facet_wrap()
создает длинную ленту панелей (генерируемую любым количеством переменных) и оборачивает ее в 2d. Это полезно, если у вас есть одна переменная с множеством уровней и вы хотите упорядочить графики более рациональным образом.Вы можете контролировать то, как лента свернута в сетку с
ncol
,nrow
,as.table
иdir
.ncol
иnrow
контролировать количество столбцов и строк (вам нужно установить только один).as.table
управляет расположением фасетов в виде таблицы (TRUE
) с максимальными значениями в правом нижнем углу или графика (FALSE
) с максимальными значениями в правом верхнем углу.dir
управляет направление обертки: ч orizontal или против ertical.Сетка фасетов
From
?facet_grid
:facet_grid()
формирует матрицу панелей, определяемую переменными фасетирования строк и столбцов. Это наиболее полезно, когда у вас есть две дискретные переменные, и все комбинации переменных существуют в данных.Вы можете использовать несколько переменных в строках или столбцах, «сложив» их вместе, например
a + b ~ c + d
.facet grid()
имеет дополнительный параметрspace
, который принимает те же значения, что иscales
.# If scales and space are free, then the mapping between position # and values in the data will be the same across all panels. This # is particularly useful for categorical axes ggplot(subset(mpg, manufacturer %in% c("audi", "honda", "toyota")) , aes(drv, model)) + geom_point() + facet_grid(manufacturer ~ ., scales = "free", space = "free") + theme(strip.text.y = element_text(angle = 0))
(упрощенный) Пример взят из
?facet_grid
источник