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

如何在R中绘制姓名与颜色组合的网格标记图?

用R实现姓名-颜色宾果卡式网格图

1. 准备工作:加载依赖包

首先确保安装并加载tidyverse包,它包含了数据处理和绘图所需的核心工具:

# 首次使用时安装包
install.packages("tidyverse")
# 加载包
library(tidyverse)

2. 创建/导入数据集

把你的示例数据转换成R数据框,或者直接导入现有数据文件:

# 示例数据集
df <- tibble(
  X1 = c("Jon", "Brandon", "Jared", "Aaron", "Layton", "Colby",
         "Brandon", "Aaron", "Zach", "Sean", "Jared", "Jon"),
  X2 = c("Red", "Blue", "Yellow", "Pink", "Black", "White",
         "Yellow", "Black", "Red", "Blue", "Pink", "White")
)

3. 生成网格标记数据

先提取唯一的姓名和颜色,再标记所有可能组合中实际存在的项:

# 获取唯一姓名和颜色(保留原数据出现顺序)
unique_names <- unique(df$X1)
unique_colors <- unique(df$X2)

# 生成全组合数据,并标记是否存在
grid_data <- expand_grid(X1 = unique_names, X2 = unique_colors) %>%
  mutate(exists = if_else(str_c(X1, X2) %in% str_c(df$X1, df$X2), "X", ""))

4. 绘制可视化网格图

用ggplot2绘制宾果卡样式的网格,调整样式匹配需求:

ggplot(grid_data, aes(x = X2, y = fct_rev(X1))) +
  # 绘制带边框的空白网格
  geom_tile(color = "black", fill = "white") +
  # 在存在的位置标记"X"
  geom_text(aes(label = exists), size = 5) +
  # 设置坐标轴标签
  labs(x = "颜色", y = "姓名") +
  # 优化主题样式
  theme_minimal() +
  theme(
    panel.grid = element_blank(), # 移除默认网格线
    axis.text.x = element_text(angle = 45, hjust = 1), # 倾斜颜色标签避免重叠
    axis.title = element_text(size = 12, face = "bold")
  )

备选:输出纯文本格式网格

如果需要和示例完全一致的文本表格,可转换为宽格式后打印:

wide_df <- df %>%
  mutate(value = "X") %>%
  pivot_wider(names_from = X2, values_from = value, values_fill = "")

# 打印纯文本表格
print(wide_df, row.names = FALSE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:32:41