TramineR 图例位置和轴

TramineR legend position and axis

我正在使用 TraMineR,但我不知道如何安排我的情节。所以基本上我想在情节下添加图例并删除 x 和 y 轴之间的 space。欢迎任何帮助。

剧情:

示例代码:

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)

seqplot 函数族提供了一系列参数来控制图例和坐标轴。查看 seqplot 的帮助页面(以及 plot.stslist.statd 的特定 seqdplot 参数)。

例如,您可以用 axes=FALSE 抑制 x 轴,用 yaxis=FALSE 抑制 y 轴。

要打印图例,您可以让 seqdplot 使用默认 with.legend=TRUE 选项自动显示它,并使用例如 cex.legend 控制字体大小,ltext 来控制它对于文本。您还可以使用 ncol 参数来设置图例中的列数。

seqplot 函数默认使用 layout 来组织图和图例之间的图形区域。如果您需要更精细的调整(例如更改绘图和图例周围的默认 par(mar=c(5.1,4.1,4.1,2.1)) 边距),您应该单独创建绘图和图例,然后使用例如自己组织它们layoutpar(mfrow=...)。在这种情况下,应通过设置 with.legend=FALSE 创建单独的图形,这会阻止显示图例并禁用 layout.

的自动使用

使用 seqlegend 最容易获得颜色图例。

我用 TraMineR 附带的 mvad 数据进行说明。首先是带有图例的默认图。注意使用 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)

现在,我们抑制 x 轴和 y 轴并修改图例的显示

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

以下是控制绘图与 x 轴和 y 轴之间 space 的方法

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)