R: Jak umieścić dwie działki pola obok siebie, zachowując ten sam zakres y dla obu?
Załóżmy, że mam dwa zestawy danych, jeden z zakresem y [min0: max0], a drugi z zakresem y [min1:max1]. W jaki sposób można umieścić oba pola w jednej działce obok siebie z prawidłowym zakresem y [min(min0, min1):max (max0, max1)]?
Oto co próbowałem:
d0 <- matrix(rnorm(15), ncol=3)
d1 <- matrix(rnorm(15), ncol=3)
par(mfrow = c(1, 2))
boxplot(d0)
usr <- par("usr")
plot.new()
par(usr = usr)
boxplot(d1, add = TRUE)
Ale to utrzyma tylko pierwsze działki w zakresie y, a także wyciśnie obie działki, podczas gdy chciałbym, aby były kwadratowe.
Jakieś pomysły? 17
1 answers
d0 <- matrix(rnorm(15), ncol=3)
d1 <- matrix(rnorm(15), ncol=3)
# Using base R graphics
lmts <- range(d0,d1)
par(mfrow = c(1, 2))
boxplot(d0,ylim=lmts)
boxplot(d1,ylim=lmts)
Możesz również pomyśleć o sposobie, aby to zrobić za pomocą siatki graficznej, albo za pomocą pakietów lattice
lub ggplot2
.
Oto jedna próba w ggplot2:
# Using ggplot2
library(ggplot2)
d <- data.frame(d.type=c(rep(0,15),rep(1,15)),sub.type=rep(c('A','B','C'),10),val=rnorm(30))
p <- ggplot(d, aes(factor(sub.type), val))
p + geom_boxplot() + facet_grid(. ~ d.type)
I w kratce:
# Using lattice
library(lattice)
bwplot(~ val|sub.type+d.type ,d)
Zauważ, jak rozwiązania oparte na siatce uniemożliwiają określanie limitów; określasz strukturę, a oprogramowanie robi resztę.
35
Author: Ari B. Friedman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-21 13:48:52
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-21 13:48:52