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

如何将quanteda的wordfish theta散点图转为ggplot并美化?

解决quanteda Wordfish theta值转ggplot散点图的fortify错误问题
  • 第一步:从Wordfish模型提取数据并整理成数据框
    你报错的核心原因是直接将双精度向量(即Wordfish模型的theta值)传入ggplot,而ggplot要求输入必须是数据框。先把theta值、语料库原始文档顺序、文档ID整理成结构化数据框:

    # 假设你的Wordfish模型对象名为wf_model,语料库对象为corp
    theta_df <- data.frame(
      doc_order = seq_along(wf_model$theta),  # 生成与语料库原始顺序一致的x轴序号
      theta = wf_model$theta,
      doc_id = docnames(corp)  # 保留文档ID,用于后续高亮指定文档
    )
    
  • 第二步:用ggplot绘制散点图并美化
    基于整理好的数据框,即可自由实现自定义美化需求:

    library(ggplot2)
    
    # 基础散点图
    p <- ggplot(theta_df, aes(x = doc_order, y = theta)) +
      geom_point(size = 2, color = "gray50") +  # 默认点的样式
      labs(x = "语料库原始文档顺序", y = "Wordfish Theta值", title = "文档立场分布散点图") +
      theme_minimal()
    
    # 高亮指定文档(示例:高亮doc_id为"target_doc_1"和"target_doc_2"的文档)
    target_docs <- c("target_doc_1", "target_doc_2")
    p <- p +
      geom_point(data = subset(theta_df, doc_id %in% target_docs), 
                 size = 4, color = "red", shape = 18)  # 自定义高亮点的样式
    
    # 显示图形
    print(p)
    
  • 额外说明:

    • seq_along(wf_model$theta)确保x轴严格遵循语料库的原始文档排列顺序
    • 可通过调整geom_point()的size、color、shape参数,自由修改点的样式
    • 若需要更多美化(比如添加辅助线、调整主题元素),直接在ggplot的图层链中追加对应代码即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:02:08