Base R中箱线图自定义调整:标签修改、字体更换、抖动点高亮
R语言基础绘图实现箱线图+抖动点自定义需求方案
以下三个需求均无需修改原始数据集即可实现,具体实现逻辑和完整代码如下:
需求1:替换横轴分类标签
- 可以实现,无需修改原始数据集。
boxplot()函数自带names参数,直接按分类顺序传入自定义标签c("No", "Yes")即可替换默认的0/1标签。
需求2:全局字体改为Times New Roman
- 通过基础绘图的全局参数设置函数
par()即可指定字体,不同操作系统的字体调用逻辑略有差异:- Windows系统需要先注册Times New Roman字体再调用
- Mac/Linux系统可直接指定字体名称调用
需求3:高亮指定抖动点并标注数值
- 直接通过逻辑筛选定位目标点坐标即可,无需修改原数据集:
- vs=1分组对应x轴位置为2,先筛选出该分组的最高mpg值作为y轴坐标
- 用
points()函数重新绘制该点,自定义颜色、大小实现高亮 - 用
text()函数在目标点附近添加数值标注即可
完整可运行代码
# 适配Windows系统的Times New Roman字体注册,Mac/Linux系统可注释该行 windowsFonts(Times = windowsFont("Times New Roman")) # 设置全局字体为Times New Roman,Mac/Linux系统将family值改为"Times New Roman"即可 par(family = "Times") # 绘制箱线图,直接指定自定义横轴标签 boxplot(mpg ~ vs, data = mtcars, names = c("No", "Yes")) # 添加抖动点 stripchart(mpg ~ vs, data = mtcars, method = "jitter", vertical = TRUE, add = TRUE) # 筛选vs=1分组的最高mpg值 target_mpg <- max(mtcars$mpg[mtcars$vs == 1]) # 高亮目标点:红色、实心、放大2倍 points(x = 2, y = target_mpg, col = "red", cex = 2, pch = 19) # 在目标点上方标注mpg数值,保留1位小数 text(x = 2, y = target_mpg, labels = round(target_mpg, 1), pos = 3, col = "red")
内容的提问来源于stack exchange,提问作者newuser932
相关产品推荐
相关产品推荐

