Положение и ось легенды TramineR - PullRequest
1 голос
/ 28 февраля 2020

Я работаю с TraMineR и не знаю, как организовать свой сюжет. Так что в основном то, что я хотел бы иметь легенду под сюжетом и удалить пространство между осями X и Y. Любая помощь приветствуется.

Сюжет:

enter image description here

Пример кода:

seqdplot(Activities.seq, with.legend=FALSE)

legend("bottom", legend=attr(Activities.seq, "labels"), 
       fill=attr(Activities.seq, "cpal"), 
       inset=-.1, bty="o", xpd=NA, cex=.75,ncol=3)

1 Ответ

1 голос
/ 29 февраля 2020

Семейство функций seqplot предлагает ряд аргументов для управления легендой, а также осями. Посмотрите на странице справки seqplotplot.stslist.statd для определения c seqdplot параметров).

Например, вы можете подавить ось x с помощью axes=FALSE, а y -axis с yaxis=FALSE.

Чтобы напечатать легенду, вы можете позволить seqdplot автоматически отображать ее с помощью опции with.legend=TRUE по умолчанию и управлять ею, например, cex.legend для размера шрифта, ltext для текста. Вы также можете использовать аргумент ncol, чтобы установить количество столбцов в легенде.

Функции seqplot по умолчанию используют layout для организации графической области c между графиками и легендой. , Если вам нужна более тонкая настройка (например, для изменения полей по умолчанию par(mar=c(5.1,4.1,4.1,2.1)) вокруг графика и легенды), вам следует отдельно создать график (ы) и легенду, а затем организовать их самостоятельно, например, с помощью layout или par(mfrow=...) , В этом случае отдельная графика должна быть создана с помощью настройки with.legend=FALSE, которая предотвращает отображение легенды и отключает автоматическое использование c layout.

Легенда цвета легче всего получить с помощью seqlegend.

Я иллюстрирую данными mvad, которые поставляются с TraMineR. Сначала сюжет по умолчанию с легендой. Обратите внимание на использование border=NA для подавления слишком большого количества вертикальных черных линий.

library(TraMineR)
data(mvad)
mvad.scode <- c("EM", "FE", "HE", "JL", "SC", "TR")
mvad.seq <- seqdef(mvad, 17:86, 
                   states = mvad.scode,
                   xtstep = 6)

# Default plot with the legend, 
seqdplot(mvad.seq, border=NA)

enter image description here

Теперь мы подавляем оси x и y и изменить отображение легенды

seqdplot(mvad.seq, border=NA,
         axes=FALSE, yaxis=FALSE, ylab="",
         cex.legend=1.3, ncol=6, legend.prop=.11)

enter image description here

Вот как вы можете управлять пространством между графиком и осями x и y

seqdplot(mvad.seq, border=NA, yaxis=FALSE, xaxis=FALSE, with.legend=FALSE)
axis(2, line=-1)
axis(1, line=0)

Создание легенды отдельно и уменьшение левого, верхнего и правого полей вокруг легенды

op <- par(mar=c(5.1,0.1,0.1,0.1))
seqlegend(mvad.seq, ncol=2, cex=2)
par(op)

enter image description here

...