如何在R中使用seqIplot配置y轴?

时间:2013-08-12 12:43:01

标签: r traminer

我正在尝试使用R-package TraMineR配置序列索引图的y轴,我想出了如何设置y轴的全局限制,如果你想要比较它是有用的两个或多个组之间的某些序列的数量,因为它使标度相等。但我没有设法设置y轴刻度(如在xtstep中)。也许你可以快速帮我使用这个示例代码:

library(TraMineR) 
data(mvad)
mvad.alphabet <- c("employment", "FE", "HE", "joblessness", "school",
                      "training")
mvad.labels <- c("Employment", "Further Education", "Higher Education",
                    "Joblessness", "School", "Training")
mvad.scodes <- c("EM", "FE", "HE", "JL", "SC", "TR")

## Define sequence objects
mvad.seq <- seqdef(mvad[, 17:86], alphabet = mvad.alphabet,
                     states = mvad.scodes, labels = mvad.labels, weights = mvad$weight, xtstep = 6)

## Plots
seqIplot(mvad.seq, group=mvad$gcse5eq, withlegend=TRUE, border=NA, xtstep=3, sortv="from.start") ## Default plot
seqIplot(mvad.seq, group=mvad$gcse5eq, withlegend=TRUE, border=NA, xtstep=3, sortv="from.start", ylim=c(0, 400)) ## Plot with custom ylim to compare the number of sequences between groups

默认序列索引图看起来像这样,并且很难比较两组: Default sequence index plot

1 个答案:

答案 0 :(得分:2)

ylim中给出seqIplot时,它将用于所有群组。为了使绘图高度与每组中的加权序列数成比例,应将上ylim设置为最频繁组的值。

group <- mvad$gcse5eq
(nseq <- xtabs(mvad$weight ~ group))
(nmax <- max(nseq))
seqIplot(mvad.seq, group=group, withlegend=TRUE,
         border=NA, xtstep=3, sortv="from.start",
         ylim=c(0, nmax) )

y轴上的刻度标签是序列索引。您可以将yaxis = FALSE提交给seqIplot来阻止他们。要显示您自己的标签,您可以发出类似的内容(有关详细信息,请参阅axis功能的帮助)

axis(2, at = c(1, nseq[1]))

但是在这种情况下,您应该为seqIplot的每个组单独生成withlegend=FALSE,并使用layoutpar(mfrow=...)将图表自行整理到一个图表中。