求助:如何用R绘制含抖动效果的无Y变量年龄分布散点图
在R中实现带Y轴抖动的年龄分布散点图
这种图的核心是给无实际意义的Y轴添加随机抖动,避免同年龄的点重叠,下面提供两种常用实现方式:
基础R实现
先构造示例年龄数据,再用jitter()函数给Y轴的固定值添加随机偏移:
# 生成示例年龄数据(18-80岁,200个样本) age <- sample(18:80, 200, replace = TRUE) # 绘制抖动散点图 plot(jitter(rep(0, length(age)), amount = 0.2), age, ylab = "年龄", xlab = "", xaxt = "n", pch = 16, col = "#2c3e5080") # 隐藏X轴刻度(因为X轴无实际意义) axis(1, at = 0, labels = "") title(main = "年龄分布散点图")
amount = 0.2:控制Y轴抖动幅度,可根据样本量调整,数值越大点分散得越开pch = 16:设置点为实心圆,col参数加透明度(末尾的80)避免点重叠后看不清
ggplot2实现
用ggplot2的geom_jitter()更灵活,还能快速美化图表:
library(ggplot2) # 构造数据框 df <- data.frame(age = sample(18:80, 200, replace = TRUE)) ggplot(df, aes(x = age, y = 1)) + geom_jitter(width = 0, height = 0.2, color = "#2c3e5080", size = 2) + theme_minimal() + # 隐藏Y轴所有无意义元素 theme(axis.title.y = element_blank(), axis.text.y = element_blank(), axis.ticks.y = element_blank(), panel.grid = element_blank()) + labs(x = "年龄", title = "年龄分布散点图")
width = 0:禁止X轴抖动,保留年龄的准确位置height = 0.2:控制Y轴抖动幅度,按需调整即可
内容的提问来源于stack exchange,提问作者harry1027
相关产品推荐
相关产品推荐

