前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >86-R可视化18-自定义分类或连续数据坐标轴文本

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

作者头像
北野茶缸子
发布2022-02-08 15:21:40
3250
发布2022-02-08 15:21:40
举报
  • 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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 北野茶缸子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 连续与分类数据的处理
  • 利用函数
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档