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

如何用ggplot2将WhatsApp对话中bla/fu词可视化为双色条形图

用ggplot2绘制WhatsApp对话词类双色条形图

1. 数据预处理

先把你的WhatsApp对话内容转换成结构化数据框,提取每个词的类型和它在对话中的位置:

# 替换成你实际的对话内容列表
conversation <- c("bla", "<indig>fu</indig>", "bla", "bla", "<indig>fu</indig>", "bla")

# 识别每个条目是"bla"还是"fu"
word_type <- ifelse(grepl("<indig>fu", conversation), "fu", "bla")

# 生成包含位置和类型的数据框
df <- data.frame(
  position = seq_along(conversation),
  type = word_type
)

2. 绘制双色条形图

用ggplot2生成紧密排列的条形图,不同颜色对应两类词,直观展示分布:

library(ggplot2)

ggplot(df, aes(x = position, y = 1, fill = type)) +
  geom_col(width = 1) +  # 条形宽度设为1,让条目紧密衔接
  scale_fill_manual(values = c("bla" = "#808080", "fu" = "#2ecc71")) +  # 自定义颜色,可按需修改
  labs(
    x = "对话顺序位置",
    y = NULL,
    fill = "词类型",
    title = "对话中bla与fu的分布情况"
  ) +
  theme_minimal() +
  theme(
    axis.text.y = element_blank(),  # 隐藏无意义的y轴文字
    axis.ticks.y = element_blank(), # 隐藏y轴刻度
    panel.grid = element_blank()    # 移除网格线,提升视觉清晰度
  )

说明

  • 条形的x轴对应对话中词的出现顺序,每个条形代表一个词
  • 颜色可以通过scale_fill_manual的values参数自定义,替换成你偏好的颜色代码
  • 隐藏y轴元素是因为y轴仅作为占位,用来展示每个位置的词,无实际数值含义

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:15:25