我正在尝试使用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
默认序列索引图看起来像这样,并且很难比较两组:
答案 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
,并使用layout
或par(mfrow=...)
将图表自行整理到一个图表中。