R: par(mfg) сбрасывает значения ylim

У меня разочаровывающий опыт, когда я пытаюсь использовать par (mfg) для перемещения между сюжетными линиями фигуры. Кажется, что изменение графика, над которым я работаю, с помощью этой команды сбрасывает что-то в способе указания осей y, так что вызов ylim=c(a,b) бесполезен. Этот поток (озадачен поведением xlim/ylim в R) заставляет меня полагаю, что здесь может играть роль asp, но я не могу понять, как и как исправить ошибку.

Вкратце, чтобы отобразить результаты плотности () для нескольких наборов данных на двух подграфиках одного окна, я написал цикл, который увеличивает два списка выходных данных от плотности (), добавляя новые строки к подграфику 1, затем к подграфику 2, затем обратно к подучастку 1 и т. д.

DATA.A<-vector("list",length=6)
DATA.B<-vector("list",length=6)

par(mfrow=c(2,1))
plot(0,0, main="title", xlab="X", ylab="Y", xlim=c(c,d), ylim=c(0,30))
plot(0,0, main="title", xlab="X", ylab="Y", xlim=c(c,d), ylim=c(-5,5))

 for(i in 1:6){ 

    DATA.A[[i]]<-density(RAWDATA.A[[i]][,"varname"], from=c, to=d, by=e)
    DATA.B[[i]]<-density(RAWDATA.B[[i]][,"varname"], from=c, to=d, by=e)

    par(mfg=c(1,1))
    lines(DATA.A[[i]]$x,DATA.A[[i]]$y,ylim=c(0,30),col="black", lty=i)
    lines(DATA.B[[i]]$x,DATA.B[[i]]$y,ylim=c(0,30),col="red", lty=i)

    par(mfg=c(2,1))
    lines(DATA.A[[i]]$x,DATA.B[[i]]$y-DATA.A[[i]]$y,
        ylim=c(-5,5), col="red", lty=i)
    abline(v=median(RAWDATA.A[[i]][,"varname"]),lty=i, col="black")
}

РЕДАКТИРОВАТЬ: я понимаю, что он не работает в основном для первого подграфика, где предполагается отображать плотности в диапазоне от 0 до 30, но вместо этого всегда сбрасывает ось в диапазоне от -1 до 1. График вызова (0,0) , метки y соответствуют значениям ylim, которые я предоставляю, но данные отображаются в диапазоне от -1 до 1. Буду очень благодарен за любые предложения.


person Andrea    schedule 22.04.2015    source источник
comment
Возможно, вам следует сохранить настройки par() из первого (и второго) вызова графика, а затем восстановить их перед использованием lines().   -  person IRTFM    schedule 23.04.2015
comment
Спасибо за идею, @BondedDust. Когда я пытаюсь это сделать, я обнаруживаю, что он отображает данные из подграфика 1 в окне подграфика 2, но похоже, что он превышает правильный масштаб! Думаю, ближе!   -  person Andrea    schedule 23.04.2015