Обычно команда par ("usr") может сообщить вам крайние значения текущей области печати. Но здесь это немного сложно, потому что аллювиальная функция регулирует графический параметр mar
внутри функции. Это меняет поля на c(2,1,1,1)
. В конце функции он возвращает поля обратно к тому, что было изначально. Поля по умолчанию: c (5, 4, 4, 2) + 0,1, представляющие количество линий (1 строка = 1/5 дюйма) между нижним, левым, верхним и правым внешними полями для области построения. Посмотрите на страницу справки для par
и прокрутите вниз, пока не дойдете до Май, чтобы увидеть хорошую диаграмму. Еще одна настройка, сделанная аллювиальной функцией, заключается в изменении значения по умолчанию style осей с обычных (xaxs = "r", yaxs = "r") на внутренние (xaxs = "i", yaxs = "i" "), что заставляет оси расширяться немного дальше.
Например:
alluvial( tit2d, freq=tit2d$Freq, xw=0.0, alpha=0.8,
gap.width=0.1, col= "steelblue", border="white",
layer = tit2d$Survived != "Yes", blocks = F )
u <- par("usr"); u
par(new=TRUE)
plot(0, type= "n", xlab = "", ylab = "", las=1, xaxs = "i", yaxs = "i",
xlim=c(u[1], u[2]), ylim=c(u[3], u[4]))
rect(u[1], u[3], u[2], u[4], col = "red")
Вы получите красный прямоугольник, заполняющий большую часть области графика. Большие промежутки между крайними значениями прямоугольника и крайними значениями аллювиальных полей обусловлены упомянутым изменением полей.
Вы можете попытаться имитировать функцию аллювиальных свойств, уменьшив поля вручную следующим образом:
op <- par(mar=c(2,1,1,1))
par(new=TRUE)
plot(0, type= "n", xlab = "", ylab = "", las=1,
xlim=c(u[1], u[2]), ylim=c(u[3], u[4]))
rect(u[1], u[3], u[2], u[4], col = "green")
par(op)
Ваш зеленый прямоугольник теперь должен покрывать весь аллювиальный график.
Редактировать : выделить нижние прямоугольники:
par(new=TRUE, mar=c(2,1,1,1))
u <- par("usr")
rect(u[1], temp$endpoints[[1]][1,1], u[1]+0.2, # Note: cw has a default value of 0.1
temp$endpoints[[1]][1,2], col = "red")
rect(u[1]+1, temp$endpoints[[1]][1,1], u[1]+1.2,
temp$endpoints[[1]][1,2], col = "red")
rect(u[1]+2, temp$endpoints[[1]][1,1], u[1]+2.2,
temp$endpoints[[1]][1,2], col = "red")
Редактировать : Спасибо @Darren Tsai за указание на то, что низкоуровневые функции построения графиков, такие как rect()
, не имеют аргумента "xaxs" для изменения стиля оси, поскольку оси уже есть!