ggplot2小提琴图:修改坐标轴标签与刻度标记
问题描述
已绘制出符合预期的ggplot2小提琴图,仅需修改坐标轴标签与刻度标记:
- Y轴标签设为“SR Observed”
- X轴标签设为“Forest Type”
- X轴刻度标签改为“Bear Oak”和“Oak-Hickory”
要求仅使用ggplot2包实现。
解决方案
你可以通过labs()函数修改坐标轴标签,结合scale_x_discrete()修改X轴刻度标签,完整代码如下:
library(ggplot2) # 加载数据集 df <- structure(list(forest.type = c("bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "bear.oak", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory", "oak.hickory"), S.obs = c(13, 9, 9, 5.5, 10, 6, 8, 9.333333333, 9, 9, 11, 8, 9, 9, 10, 11, 8.333333333, 7.5, 6, 13, 12.5, 9, 9.5, 9, 7, 7, 8, 9, 8, 6, 9, 6, 3, 2, 2, 2, 4, 3, 11, 5.8, 5.4, 6.4, 6.6, 5, 11, 10, 9.333333333, 6, 10, 10, 9, 7, 7, 5, 10, 11, 13, 5, 7, 8, 7, 9, 7, 8, 8, 11, 11.5, 16.5, 4, 7, 6, 5.5, 5, 7, 7, 13, 16, 7, 11, 8.5, 11, 12, 12, 14, 11, 11, 6, 8.5, 4, 10, 7, 6, 7, 11, 5, 5, 8, 7, 11.5, 10, 8, 5, 9, 6, 8, 5.5, 7, 4.5, 7, 7, 6.5, 7.5, 5.5, 5, 7.5, 9.5, 6, 8, 5.5, 9.25, 3.666666667, 5.5, 7.5, 6.5, 6, 8, 6, 13, 14, 14.5, 10.33333333, 10, 6, 5, 9, 8)), class = "data.frame", row.names = c(NA, -136L )) # 绘制小提琴图并修改坐标轴 p <- ggplot(df, aes(x = forest.type, y = S.obs)) + geom_violin() + stat_summary(fun = median, geom = "point", size = 2, color = "red") + # 修改坐标轴标签 labs(x = "Forest Type", y = "SR Observed") + # 修改X轴刻度标签 scale_x_discrete(breaks = c("bear.oak", "oak.hickory"), labels = c("Bear Oak", "Oak-Hickory")) # 显示图形 print(p)
代码说明
labs(x = "Forest Type", y = "SR Observed"):直接设置X、Y轴的显示标签scale_x_discrete(breaks = ..., labels = ...):breaks对应数据中原始的类别名称,labels设置要显示的新刻度文本- 保留了你原本添加的中位数红点逻辑,确保图形效果符合预期
内容的提问来源于stack exchange,提问作者Jeff Stratford
相关产品推荐
相关产品推荐

