2014-09-05 1 views
1

Я построил шесть моделей каждый на отдельном участке.один участок для 6 моделей

Мой вопрос: как я могу объединить их в один графический график, используя R?

код я использую:

fitemax <- fitMod(dose, resp, data=biom, model="emax",bnds = c(0.00, 1)) 
plot(fitemax) 

fitlinearlog <- fitMod(dose, resp, data=biom, model="linlog",bnds = c(0.00, 1)) 
plot(fitlinearlog) 

fitlinear <- fitMod(dose, resp, data=biom, model="linear",bnds = c(0.00, 1)) 
plot(fitlinear) 

fitquadratic <- fitMod(dose, resp, data=biom, model="quadratic",bnds = c(0.00, 1)) 
plot(fitquadratic) 

fitexponential <- fitMod(dose, resp, data=biom, model="exponential",bnds = c(0.00,1)) 
plot(fitexponential) 

fitlogistic <- fitMod(dose, resp, data=biom, model="logistic",defBnds(MaxEff, 
logistic = matrix(c(0.0, 0.2, 0.4, 0.8)*MaxEff, 2))) 
plot(fitlogistic) 

В Cabe данных можно найти в R в DoseFinding Пакет

+1

Что именно представляет собой желаемый выход? Как бы выглядел этот «один сюжет»? Код, который вы предоставили, по сути, бесполезен, потому что вы не предоставили никаких данных, чтобы мы могли его запустить, поэтому мы не представляем, как выглядят эти сюжеты. Создайте действительно [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – MrFlick

ответ

2

Используйте par (mfrow = С (2,3)), чтобы сделать следующий участок будет расположенных в одной сетке 2 * 3.

Если вы хотите хороший контроль, продолжайте читать here (макет), here (ggplot + gridExtra)

png(filename="C:\\Users\\datafireball.com\\Documents\\R\\stackoverflow_7144118.png") 
par(mfrow=c(3,2)) 
plot(rnorm(10), rnorm(10)) 
plot(rnorm(10), rnorm(10)) 
plot(rnorm(10), rnorm(10)) 
plot(rnorm(10), rnorm(10)) 
plot(rnorm(10), rnorm(10)) 
plot(rnorm(10), rnorm(10)) 
dev.off() 

Вы можете удалить первую и последнюю строку, так что вы можете распечатать его на выходе безусловного победителя.

enter image description here

Update: В вашем случае, похоже, номинальной (mfrow) не будет работать, потому что я не думаю, что это на самом деле вызов метода базового участка, вместо возврата объекта из метода fitMod на самом деле является типом, называемым «решеткой», который относится к пакету решетки. Если вы хотите узнать больше о trellis, прочитайте here. Однако, если вы просто хотите узнать, как это работает, я получил его с помощью метода grid.arrange от gridExtra.

library(DoseFinding) 
library(gridExtra) 
data(biom) 
# here, the bnds argument has been ignored so the default value from defBnds will be applied. 
fitemax <- fitMod(dose, resp, data=biom, model="emax") 
p1 <- plot(fitemax) 
fitlinearlog <- fitMod(dose, resp, data=biom, model="linlog") 
p2 <- plot(fitlinearlog) 
fitlinear <- fitMod(dose, resp, data=biom, model="linear") 
p3 <- plot(fitlinear) 
fitquadratic <- fitMod(dose, resp, data=biom, model="quadratic") 
p4 <- plot(fitquadratic) 
fitexponential <- fitMod(dose, resp, data=biom, model="exponential") 
p5 <- plot(fitexponential) 
fitlogistic <- fitMod(dose, resp, data=biom, model="logistic") 
p6 <- plot(fitlogistic) 
grid.arrange(p1, p2, p3, p4, p5, p6) 
# Message: Need bounds in "bnds" for nonlinear models, using default bounds from "defBnds". 

enter image description here

Является ли это вывод, который вы хотите?

+0

Это действительно не работает с моими данными, оно хранится в r в пакете для поиска дозы данные (biom) Я пробовал все, но все же отображался отдельно – SAMA

+0

Если этот ответ не работает с вашим конкретным набором данных, тогда вы должны предоставить воспроизводимый (!) пример данных, который напоминает его наиболее важные функции. – SimonG

+0

@SAMA См. Обновление и дайте мне знать, если это то, что вы просили. –

Смежные вопросы