12
Tworzę kilka fasetowanych wykresów dla raportu. Liczba płaszczyzn waha się między 2 a 8. Idealnie, chciałbym, aby bezwzględny rozmiar każdego aspektu (na całej powierzchni) był taki sam (np. 4x4 cm), aby łatwiej było je porównać (i wygląda ładniej).Ustawianie bezwzględnego rozmiaru faset w ggplot2
Czy to możliwe?
df1 <- structure(list(group1 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,1L, 1L, 1L, 1L, 1L), .Label = c("S1", "S2"), class = "factor"), group = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), .Label = c("A", "B", "C", "D", "E"), class = "factor"), value = 1:12), class = "data.frame", row.names = c(NA, -12L), .Names = c("group1", "group", "value"))
df2 <- structure(list(group1 = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("S1", "S2"), class = "factor"), group = structure(c(4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L), .Label = c("A", "B", "C", "D", "E"), class = "factor"), value = 13:20), class = "data.frame", row.names = c(NA, -8L), .Names = c("group1", "group", "value"))
library(ggplot2)
plot1 <- ggplot(df1) + geom_histogram(aes(x=value)) + facet_wrap(~group)
plot2 <- ggplot(df2) + geom_histogram(aes(x=value)) + facet_wrap(~group)
Dzięki, chociaż ja wciąż nie rozumiem, jak korzystać z tej funkcji bez odbieranie komunikatu o błędzie. Czy możesz rozwinąć swoją odpowiedź, pokazując, jak uzyskać pożądany wynik za pomocą moich przykładowych danych? – beetroot
Po prostu próbowałem tego z R Devel, a ta linia nie działa dla mnie: 'g $ widths [panel_index_w] <- rep (lista (szerokość), nw)'. Muszę użyć tego: 'g $ widths [panel_index_w] <- rep (grid ::: unit.list (width), nw)'. –
Aby odpowiedzieć na mój wcześniejszy komentarz: wiersz 'g $ widths [panel_index_w] <- rep (lista (szerokość), nw) należy zastąpić' g $ widths [panel_index_w] <- rep (width, nw) '. Wtedy wszystko działa. –