Scales = free работает для facet_wrap, но не для facet_grid

Я пытаюсь понять, почему выходные данные facet_grid() и facet_wrap() разные, хотя входы одинаковы:

facet_grid

ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_grid(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()

введите описание изображения здесь

facet_wrap

ggplot(temp, aes(x = valor)) +
geom_histogram(binwidth = 5, fill = NA, color = "black") +
facet_wrap(estratificacao ~ referencia, scales = "free") +
scale_x_continuous(breaks = seq(0, 100, 10)) + theme_classic()

введите описание изображения здесь

Видите ли, аргумент scales = "free" ведет себя по-разному для facet_grid() и facet_wrap(). Что это может объяснить?


person iatowks    schedule 07.06.2016    source источник
comment
Всегда есть пакет lattice, который может выполнять любые произвольные масштабирования в сетке.   -  person mlt    schedule 04.07.2020


Ответы (1)


Ссылаясь на эту ссылку:

facet_grid разбивает данные на фасеты по одной или двум переменным, которые различаются по горизонтали и / или вертикали, в то время как facet_wrap размещает фасеты рядом друг с другом, заключая в них определенное количество столбцов или строк. Другими словами, facet_wrap имеет только горизонтальный размер.

Следовательно, используя пример из этой ссылки, sp + facet_grid(. ~ sex) будет вести себя так же, как sp + facet_grid( ~ sex). В вашем случае facet_grid(. ~ referencia) и facet_wrap( ~ referencia) должны давать один и тот же сюжет.

Для двух или более граней измерения facet_grid создает сетку графиков на основе параметра (vertical ~ horizontal). facet_wrap, с другой стороны, просто укладывает графики горизонтально. Затем пользователь может установить макет, указав количество столбцов или строк.

Теперь, когда добавлен аргумент scales = "free", фасеты в facet_grid будут по-прежнему ограничены сеткой, поэтому графики в одной строке не могут иметь разные оси y. Точно так же для каждого столбца может быть только одна ось абсцисс. Однако при использовании facet_wrap каждый график отображается независимо, поэтому он может «освободить» свою ось x и ось y.

На мой взгляд, facet_grid полезен, когда вы хотите относительно сравнить графики внутри категории, что может быть достигнуто путем установки одинаковых масштабов осей. Между тем, facet_wrap более полезен для сюжетов, которые более независимы друг от друга.

person zyurnaidi    schedule 07.06.2016
comment
Мне всегда нравится изучать теоретические основы инструментов, которые я использую. Определенно будет полезно для меня. - person iatowks; 07.06.2016