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

求助:如何用ggplot2复刻含横竖分类轴的点图?

复刻分类点图的ggplot2实现

参考图的核心结构是纵轴为样本类型(type),横轴为特征(trait),每个交叉位置用点表示样本具备对应特征,无点则表示不具备。以下是针对你的示例数据的优化实现:

修正后的完整代码

# 加载所需包
library(ggplot2)
library(reshape2)

# 创建示例数据集
df <- data.frame(type=c("A","B","C","D"),
                 trait1=c(1,1,0,0),
                 trait2=c(1,0,1,0))

# 转换为长格式
melt_df <- melt(df)

# 绘制复刻版点图
ggplot(melt_df[melt_df$value == 1, ], aes(x = variable, y = type)) +
  geom_point(size = 8, color = "#333333") +
  scale_x_discrete(position = "top") +
  labs(x = "特征", y = "类型") +
  theme_minimal() +
  theme(
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    axis.text = element_text(size = 12),
    axis.title = element_text(size = 14)
  )

关键调整说明

  • 数据过滤:只保留value=1的记录,确保只有具备特征的位置显示点
  • 轴映射调整:将x设为特征(variable)、y设为样本类型(type),匹配参考图的轴布局
  • 几何对象替换:用geom_point替代geom_dotplot,实现每个交叉位置的独立点效果(而非堆叠点)
  • 主题优化:隐藏网格线、调整文字大小,让图表风格更贴近参考图的简洁感

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:15:39