2009-11-26 11 views
23

Ilekroć uruchamiam ten kod, pierwszy wykres po prostu zastąpi poprzedni. Czy w R nie ma sposobu na oddzielenie, aby uzyskać dwie działki?Jak oddzielić dwie działki w R?

plot(pc) 
title(main='abc',xlab='xx',ylab='yy') 

plot(pcs) 
title(main='sdf',xlab='sdf',ylab='xcv') 

Odpowiedz

14

Przed rozpoczęciem drukowania spróbuj użyć par.

par(mfrow = c(2, 1)) 
0

Jeśli chcesz 2 działki w osobnych oknach lub plikach, możesz wybrać nowe urządzenia przed wywołaniem każdego polecenia wydruku. Patrz?

Urządzenia

I

dev.cur

+0

o ok, dzięki za wszystkie wspaniałe sugestie faceci, nauczyłem się czegoś nowego. – phpdash

38

Jeśli chcesz tylko zobaczyć dwa różne kreślenia otwarte okna w tym samym czasie, użyj dev.new, np

plot(1:10) 
dev.new() 
plot(10:1) 

Jeśli chcesz narysować dwie działki w tym samym oknie, a następnie, jak wspomniano Shane, ustawić parametr mfrow.

par(mfrow = c(2,1)) 
plot(1:10) 
plot(10:1) 

Jeśli chcesz spróbować czegoś trochę bardziej zaawansowany, można spojrzeć na grafikę kratowych lub ggplot, z których obie są doskonałe do tworzenia uwarunkowanych działki (działek, gdzie pojawiają się różne podzbiory danych w różnych ramkach).

Kratowy przykład:

library(lattice) 
dfr <- data.frame(
    x = rep(1:10, 2), 
    y = c(1:10, 10:1), 
    grp = rep(letters[1:2], each = 10) 
) 
xyplot(y ~ x | grp, data = dfr) 

ggplot przykład. (Musisz ściągnąć ggplot z CRAN pierwszy.)

library(ggplot2) 
qplot(x, y, data = dfr, facets = grp ~ .) 
#or equivalently 
ggplot(dfr, aes(x, y)) + geom_point() + facet_grid(grp ~ .) 
+0

dziękuję sir^_ ^, dev.new() działa całkiem dobrze dla mnie – espais

+0

Muszę dać trochę miłości do parametru 'mfcol'. Wypełnia twoje wykresy kolumnowo, co jest zgodne z tym, jak każdy inny obiekt w R jest wypełniony (no, głównie matryce). Właśnie to odkryłem. Zawsze zastanawiałem się, dlaczego fabuły są wypełnione wierszami ...nie myśl, że kiedykolwiek wrócę do 'mfrow'! – MichaelChirico

0

Alternatywnym rozwiązaniem jest przypisanie działkę jako obiekt, a następnie można go wyświetlić, gdy chcesz tj

abcplot<-plot(pc) title(main='abc',xlab='xx',ylab='yy') 

sdfplot<-plot(pcs) title(main='sdf',xlab='sdf',ylab='xcv') 

abcplot # Displays the abc plot 
sdfplot # Displays the sdf plot 
abcplot # Displays the abc plot again 
+1

To nie działa. 'plot' zwraca' NULL'. W ten sposób nie można zapisać szczegółów wykresu. Jeśli używasz grafiki opartej na siatce (np. 'Kratownica'), sugerujesz, co jest możliwe, np. 'p1 <- xyplot (y ~ x); print (p1) '. –

4

Ty mogli również spróbować polecenia układ:

spróbuj layout(1:2)

plot(A)  
plot(B) 
2

try komenda x11() przed każdym poletku, oto przykład:

x11() 
plot(1:10) 
x11() 
plot(rnorm(10)) 

To doprowadzi do różnych okien fabuły. Możesz dodać polecenie "par" do dowolnego z tych okien x11() i uzyskać więcej różnorodności działek, tj. 4 działek w jednym oknie, podczas gdy duży dział w innym oknie.

Powiązane problemy