- Date : [[2022-01-04_Tue]]
- Tags : #R/index/02 #R/R可视化 #R/R数据科学
- 参考:ggplot2-设置坐标轴 - yutingliuyl - 博客园 (cnblogs.com)[1]
前言
最近遇到一个问题,如何将ggplot 连续性数据的坐标轴文本,自定义成想要的分类数据,比如1:10 的数值替换成 id1, id2...id10,实现以假乱真的效果。
当然首先从基础说起,也就是从分类与连续数据的不同标签设置开始。
这里主要谈的还是标签,关于坐标的范围限定,可以参考:[[57-R可视化6-ggplot2三部曲最终之进阶为菜鸟]]
连续与分类数据的处理
无论是y 还是x 轴,都对应scale_**_discrete/continuous
,比如x轴如果是分类数据,则使用函数scale_x_discrete。
- 分类数据
主要是两个参数,比如:
代码语言:javascript复制bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) geom_boxplot()
# 将原有的 "ctrl", "trt1", "trt2" 改动为 "Control", "Treat 1", "Treat 2" bp scale_x_discrete(breaks=c("ctrl", "trt1", "trt2"), labels=c("Control", "Treat 1", "Treat 2"))
- 连续数据
也是breaks 与label,只是breaks 需要使用数值型向量了:
代码语言:javascript复制ggplot() geom_col(data = my_data2, aes(id, counts), fill = "red") labs(x = NULL)
scale_x_continuous(breaks=seq(0,9,1),
expand=c(0,0),
label = paste0("GSE", "00", 0:9))
利用函数
有时候在不调整坐标轴的情况下,我们仅仅希望坐标添加上额外的标记,这时候就可以借助函数了:
代码语言:javascript复制ggplot() geom_col(data = my_data2, aes(id, counts), fill = "red") labs(x = NULL)
scale_y_continuous( label = function(x) {return(paste("TEST", x))})
参考资料
[1]ggplot2-设置坐标轴 - yutingliuyl - 博客园 (cnblogs.com): https://www.cnblogs.com/yutingliuyl/p/7374367.html