Pytanie w sprawie facet, r, ggplot2 – różne wymiary wielkości proporcjonalne do osi x na ggplot 2 r

30

Oto sytuacja:

<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>

Różne aspekty są skalowane według x ograniczeń na poniższym wykresie:

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

Ponieważ całkowita szerokość x ma znaczenie, chcę tworzyć aspekty o różnej szerokości, nie tylko w innej skali. Tak więc oczekiwana szerokość fasety 1 powinna być o połowę mniejsza niż 2.

BTW, nie mogłem uruchomić twojego przykładu. Zaproponowałem zmiany redakcyjne, ale zostały one odrzucone. W rozmowach dofacet.grid(), Użyłem. ~ groups zamiast. ~ group. Również,group = groups w estetyce stwierdzenia nie są potrzebne. Sandy Muspratt

Twoja odpowiedź

1   odpowiedź
45

Jeśli dobrze cię rozumiem,space = "free_x" robi to, co chcesz.

<code>library(ggplot2)

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

A jeśli chcesz ten sam styl etykietowania na osiach x:

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

space jest obsługiwany tylko dlafacet_grid. Po co robićfacet_wrap? Jakieś opcje? Paul McMurdie
@PaulMcMurdie O ile wiem,facet-wrap nigdy nie wspierał aspace argument, ale wielufacet_wrap polecenia mogą być rzutowane jakofacet-grid polecenia. Jeśli masz działkę, która nie jest możliwa, lepiej zadać nowe pytanie. Sandy Muspratt
Przepraszamy, usunąłem mój komentarz na tematspace, ponieważ odkryłem, że błąd nierozpoznanego argumentu był specyficzny dlafacet_wrap. Paul McMurdie

Powiązane pytania