You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TramineR技术咨询:使用seqdplot()完成集群模式可视化后,如何绘制各集群占比?

在TraMineR的seqdplot中添加集群占比

嘿,作为TraMineR新手能用到seqdplot()可视化集群模式已经很棒啦!要给每个集群标注占比其实很容易,我给你两种实用的方法:

方法一:自定义组标签(推荐)

这种方法可以直接让集群标题带上占比,步骤清晰且效果规整:

  1. 先计算集群的频数与占比
    假设你已经通过seqclust()、PAM聚类或者其他方式得到了集群结果(比如存储在clust_result对象里),先统计每个集群的样本数和占比:
# 统计各集群的样本数量
cluster_counts <- table(clust_result$cluster)
# 计算占比并保留1位小数
cluster_pct <- round(prop.table(cluster_counts) * 100, 1)
# 生成带占比的集群标签
cluster_labels <- paste0("Cluster ", names(cluster_counts), " (", cluster_pct, "%)")
  1. 调用seqdplot时传入自定义标签
    把你的序列对象、集群分组和刚生成的标签一起传入函数:
seqdplot(your_seq_object, 
         group = clust_result$cluster, 
         group.name = cluster_labels)

这样生成的每个子图标题就会自动显示对应的集群占比啦。

方法二:手动添加占比文本

如果需要更灵活的位置调整,可以在绘制完基础图后手动添加文本:

# 先绘制不带占比的集群序列图
seqdplot(your_seq_object, group = clust_result$cluster)
# 计算各集群占比
cluster_pct <- round(prop.table(table(clust_result$cluster)) * 100, 1)
# 遍历每个子图添加占比文本(x/y位置可根据你的图表调整)
for(i in 1:length(cluster_pct)){
  text(x = 0.5, y = 1.05, 
       labels = paste0("(", cluster_pct[i], "%)"), 
       cex = 0.8)
}

如果你的集群是直接用向量(比如cluster_vec)指定的,只需要把代码里的clust_result$cluster换成你的集群向量就行~

内容的提问来源于stack exchange,提问作者Rstudent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:08:15