Вопрос по facet, ggplot2, r – грани разных размеров, пропорциональные оси x на ggplot 2 r

30

Ниже приводится ситуация:

<code>group1 <- seq(1, 10, 2)
group2 <-  seq(1, 20, 3)
x = c(group1, group2)
mydf <- data.frame (X =x , Y = rnorm (length (x),5,1), 
 groups = c(rep(1, length (group1)), rep(2, length(group2))))

ggplot(mydf, aes(X, Y, group= groups)) + geom_point()+ facet_grid (.~ group)
</code>

Различные грани масштабируются по x границам на следующем графике:

<code> ggplot(mydf, aes(X, Y, group= groups)) + geom_point()+ 
   facet_grid (.~ group, scales = "free_x")
</code>

Поскольку общая ширина x имеет значение, я хочу получить фасеты разной ширины, а не разного масштаба. Таким образом, ожидаемая ширина фасета 1 должна быть в два раза меньше 2.

enter image description here

Кстати, я не могу запустить твой пример. Я предложил редакционные изменения, но они были отклонены. В звонках наfacet.grid(), Я использовал. ~ groups на месте. ~ group, Также,group = groups в эстетике высказывания не нужны. Sandy Muspratt

Ваш Ответ

1   ответ
45

space = "free_x" делает то, что вы хотите.

library(ggplot2)

ggplot(mydf, aes(X, Y)) + geom_point()+ 
facet_grid (.~ groups, scales = "free_x", space = "free_x")

enter image description here

И если вы хотите использовать одинаковый стиль надписей на осях X:

ggplot(mydf, aes(X, Y)) + geom_point()+ 
 scale_x_continuous(breaks = seq(0,20,2)) +
 facet_grid (.~ groups, scales = "free_x", space = "free_x")

enter image description here

Извините, удалил мой комментарий оspaceпотому что я обнаружил, что ошибка нераспознанного аргументаfacet_wrap.
@PaulMcMurdie Насколько я знаю,facet-wrap никогда не поддерживалspace аргумент, но многиеfacet_wrap Команды могут быть приведены какfacet-grid команды. Если у вас есть сюжет, где это невозможно, лучше задать новый вопрос.
space поддерживается только дляfacet_grid, Что делать дляfacet_wrap? Есть варианты?

Похожие вопросы