【问题标题】:How to add second y axis to seqfplot with sequence frequency?如何使用序列频率将第二个 y 轴添加到 seqfplot?
【发布时间】:2014-06-03 22:33:16
【问题描述】:

我正在与 TraMineR 合作,对教育数据进行序列分析。我可以让 R 使用类似于以下的代码生成数据中最常见的 10 个序列的图:

library(TraMineR)

##Loading the data
data(actcal)

##Creating the labels and defining the sequence object
actcal.lab <- c("> 37 hours", "19-36 hours", "1-18 hours", "no work")
actcal.seq <- seqdef(actcal, 13:24, labels=actcal.lab)

## 10 most frequent sequences in the data
actcal.freq <- seqtab(actcal.seq)
actcal.freq

## Plotting the object
seqfplot(actcal.seq, pbarw=FALSE, yaxis="pct", tlim=10:1, cex.legend=.75, withlegend="right")

但是,我还想在图的右侧显示每个序列的频率(在对象 actcal.freq 中)。例如,上面代码创建的图中的第一个序列代表了 37.9% 的数据(如当前的图所示)。根据seqtab,这是 757 个主题。我希望数字 757 出现在右侧 y 轴上(其他序列以此类推)。

这可能吗?我玩过axis(side=4, ...),但始终无法让它重现左 y 轴的间距。

【问题讨论】:

    标签: r plot traminer


    【解决方案1】:

    好的。这有点乱,但如果您默认包含图例,该功能会重置par 设置,因此您需要将其关闭。然后您可以更轻松地设置轴,然后我们可以返回图例。这应该适用于您上面的测试数据。

    #add padding to the right for axis and legend
    par("mar"=c(5,4,4,8)+.1)
    
    #plot w/o axis
    seqfplot(actcal.seq, pbarw=FALSE, yaxis="pct", tlim=10:1, withlegend=F)
    
    #plot right axis with freqs
    axis(4, at = seq(.7, by=1.2, length.out=length(attr(actcal.freq,"freq")$Freq)), 
        labels = rev(attr(actcal.freq,"freq")$Freq), 
        mgp = c(1.5, 0.5, 0), las = 1, tick = FALSE)
    
    #now put the legend on        
    legend("right", legend=attr(actcal.seq, "labels"), 
        fill=attr(actcal.seq, "cpal"), 
        inset=-.3, bty="o", xpd=NA, cex=.75)
    

    您可能需要稍微调整一下边距,尤其是legendinset= 参数才能正确放置。我希望您的真实数据与此相差不大,因为您确实必须深入研究该函数以查看它如何进行格式化以使事物匹配。

    【讨论】:

    • 感谢您的回答 MrFlick!我不得不稍微改变它以使其适用于我的数据(将图例放在底部等)。此外,R 给了我错误“seq.default(0.7, by = 1.2, length.out = length(pcts)) 中的错误:找不到对象'pcts'”所以我只是指定了length.out = 10
    • @user3684695 抱歉出现错误。我不记得pcts 是从哪里来的了,但是我已经使用标签的长度更新了代码,所以它应该总是有效的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 2020-07-20
    • 1970-01-01
    相关资源
    最近更新 更多