86-R可视化18-自定义分类或连续数据坐标轴文本

2022-02-08 15:21:40 浏览数 (2)

  • 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

0 人点赞