如何在R语言中复现目标分布图?已尝试ggridges未达预期效果
解决方案:复现灰色背景类别点图
你要复现的这种每个类别带灰色横向背景、对应x轴分布点的图表,不需要用ggridges(它主打山脊密度可视化),直接用ggplot2的基础图层就能实现,步骤如下:
核心思路
- 用
geom_tile给每个y轴类别绘制灰色背景条 - 用
geom_point绘制竖线形状的点,匹配目标图样式 - 调整主题细节,去掉冗余元素
示例代码
library(ggplot2) ggplot(significant_genes_df, aes(y = TF_variant)) + # 绘制灰色背景条,覆盖每个y类别的横向区域 geom_tile(aes(x = 0, width = Inf, height = 0.8), fill = "#e0e0e0", color = NA, alpha = 0.8) + # 绘制竖线形状的点,对应mean_LFC值 geom_point(aes(x = mean_LFC), shape = "|", size = 3, color = "black") + # 坐标轴设置,和你的原代码对齐 scale_y_discrete(expand = c(0, 0)) + scale_x_continuous(expand = c(0, 0), name = "mean Log2 Fold Change") + ggtitle("Prolif 3 CD8 Day15/Day0") + # 调整主题,去掉背景网格,简化样式 theme_minimal() + theme( panel.grid = element_blank(), plot.title = element_text(hjust = 0.5), axis.title.y = element_blank() )
代码说明
geom_tile的width = Inf让背景条铺满整个x轴范围,height = 0.8控制背景条高度,避免和相邻类别重叠- 如果点存在重叠需要抖动,给
geom_point加上position = position_jitter(width = 0.1, height = 0)即可 - 背景色、点的大小颜色都可以根据目标图自行调整
内容的提问来源于stack exchange,提问作者Jinsoul Jung
相关产品推荐
相关产品推荐

