• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      未分类

      • 首页
      • 博客
      • 未分类
      • ggpubr包:生成可出版的图形

      ggpubr包:生成可出版的图形

      • 发布者 weinfoadmin
      • 分类 未分类
      • 日期 2021年9月9日
      • 评论 0评论

      专题介绍:R是一种广泛用于数据分析和统计计算的强大语言,于上世纪90年代开始发展起来。得益于全世界众多 爱好者的无尽努力,大家继而开发出了一种基于R但优于R基本文本编辑器的R Studio(用户的界面体验更好)。也正是由于全世界越来越多的数据科学社区和用户对R包的慷慨贡献,让R语言在全球范围内越来越流行。其中一些R包,例如MASS,SparkR, ggplot2,使数据操作,可视化和计算功能越来越强大。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R的学术性开发比较早,适合生物学和医学等学术学科的科研人员使用。

      导读

      阅读完本文后,你可以知道:

      1ggpubr包可以做什么

      2ggpubr包如何美化图形


      1
      ggpubr包介绍

      ggpubr包在R语言ggplot2可视化包的基础上,设计和实现一些好用的函数,可以帮助使用者快速而高效地生成可用于出版的图形。

      2
      ggpubr包如何美化图形

      ggpubr包可以很方便地对图形做美化,让你的图形迅速上升档次。

      ggpar函数对ggplot2包做的图形可以从这些方面做美化和提升操作。

      • 标题,坐标轴的标签和图例的标题

      • 图例的位置和展示方式

      • 颜色

      • 坐标轴的范围

      • 坐标轴的转换:log2和sqrt

      • 坐标轴的刻度

      • 主题设置

      • 图形的旋转

      3
      ggpubr包可视化示范

      ggpubr包做可视化分析,示范如下。


      第一步:加载ggpubr包

      library(pacman)
      p_load(ggpubr)


      第二步:加载数据集

      使用R语言自带的数据集ToothGrowth和mtcars。

      data("ToothGrowth")
      data("mtcars")


      第三步:数据集检视

      head(ToothGrowth)
      head(mtcars)



      第四步:所数据可视化

      4.1 基本图形生成,盒箱图

      p <- ggboxplot(ToothGrowth, x = 'dose', y = 'len', color = 'dose')
      p


      4.2 添加边框线

      p + border('black')


      4.3 修改标题和坐标轴的标签

      p2 <- ggpar(
        p,
        title = "利用ggpubr包创建盒箱图",
        subtitle = "Length ~ Dose",
        caption = "Soruce: ggpurb",
        xlab = "Dose(mg)",
        ylab = "Teeth length",
        legend.title = "Dose(mg)"

      )p2


      4.4 主标题和副标题居中

      p2 + theme(plot.title = element_text(hjust = 0.5),            plot.subtitle = element_text(hjust = 0.5))


      4.5 修改标题和标签字体的格式,颜色,大小

      p3 <- ggpar(
        p2,
        font.title = c(14, "bold.italic", "red"),
        font.subtitle = c(10,  "orange"),
        font.caption = c(10,  "orange"),
        font.x = c(14,  "blue"),
        font.y = c(14,  "#993333")
      )
      p3 + theme(plot.title = element_text(hjust = 0.5), plot.subtitle = element_text(hjust = 0.5))


      4.6 修改图例的位置和显示

      ggpar(p,
            legend = "right", legend.title = "Dose (mg)") + 
        font("legend.title", color = "blue", face = "bold")+ 
        font("legend.text", color = "red")


      4.7 颜色设置

      ggpar(p, palette = "npg") # 来自ggsci package


      4.8 修改坐标轴的范围

      ggpar(p, ylim = c(0, 50))


      4.9 坐标轴的转换

      ggpar(p, yscale = "log2", format.scale = TRUE)


      4.10 控制坐标轴的文字

      p + 
        font("xy.text", size = 12, color = "blue", face = "bold") +
        rotate_x_text(45)+       
        rotate_y_text(45)


      4.11 主题设置

      p + theme_gray()


      4.12 图形旋转

      p + rotate()


      附录:完整参考代码

      library(pacman)
      p_load(ggpubr)

      #基于ggpubr包里面的函数
      #ggpar函数对ggplot2包做的图形
      #进一步美化,满足可出版的要求
      #可美化的角度
      #标题,坐标轴标签,图例的标题
      #图例的位置和展示
      #颜色
      #坐标轴的范围
      #坐标轴的转换:log和sqrt
      #坐标轴的刻度
      #主题设置
      #图形旋转

      # 数据集
      ToothGrowth
      # 数据集加载
      data("ToothGrowth")
      data("mtcars")

      head(ToothGrowth)
      head(mtcars)

      # 基础图形
      p <- ggboxplot(ToothGrowth, x = 'dose', y = 'len', color = 'dose')
      p
      # 添加网格线
      p + grids(linetype = 'dashed')
      # 添加边框线
      p + border('black')
      # 修改背景颜色
      p + bgcolor('#BFD5E3') +
        border('black')
      # 修改标题和轴的标签
      p2 <- ggpar(
        p,
        title = "利用ggpubr包创建盒箱图",
        subtitle = "Length ~ Dose",
        caption = "Soruce: ggpurb",
        xlab = "Dose(mg)",
        ylab = "Teeth length",
        legend.title = "Dose(mg)"
      )
      p2
      # 主标题和副标题居中处理
      p2 + theme(plot.title = element_text(hjust = 0.5), plot.subtitle = element_text(hjust = 0.5))

      # 修改标题和标签的字体和颜色
      p3 <- ggpar(
        p2,
        font.title = c(14, "bold.italic", "red"),
        font.subtitle = c(10,  "orange"),
        font.caption = c(10,  "orange"),
        font.x = c(14,  "blue"),
        font.y = c(14,  "#993333")
      )
      p3 + theme(plot.title = element_text(hjust = 0.5), plot.subtitle = element_text(hjust = 0.5))


      # 或者使用
      # font函数
      p2 +
        font("title", size = 14, color = "red", face = "bold.italic")+
        font("subtitle", size = 10, color = "orange")+
        font("caption", size = 10, color = "orange")+
        font("xlab", size = 12, color = "blue")+
        font("ylab", size = 12, color = "#993333")

      ggpar(p, title = "Plot of length n by dose",
            xlab ="Dose (mg)", ylab = "Teeth length",
            legend.title = "Dose (mg)",
            font.title = c(14,"bold.italic", "red"),
            font.x = c(14, "bold", "#2E9FDF"),
            font.y = c(14, "bold", "#E7B800"))

      # 修改图例的位置和显示
      ggpar(p,
            legend = "right", legend.title = "Dose (mg)") + 
        font("legend.title", color = "blue", face = "bold")+ 
        font("legend.text", color = "red")

      # 颜色设置
      ggpar(p, palette = c("#00AFBB", "#E7B800", "#FC4E07"))
      ggpar(p, palette = "Dark2")
      ggpar(p, palette = "grey")
      ggpar(p, palette = "npg") # 来自ggsci package

      p + color_palette("jco")
      p + color_palette(c("#00AFBB", "#E7B800", "#FC4E07"))


      p4 <- ggscatter(mtcars, x = "wt", y = "mpg", color = "mpg",
                      size = 2)
      p4
      p4 + gradient_color("red")
      p4 + gradient_color(c("blue",  "red"))
      p4 + gradient_color(c("blue", "white", "red"))
      p4 + gradient_color("RdYlBu") # Use RColorBrewer palette

      p5 <- ggscatter(mtcars, x = "wt", y = "mpg", fill = "mpg",
                      size = 4, shape = 21)
      p5 + gradient_fill(c("blue", "white", "red"))

      # 修改x的范围和缩放
      ggpar(p, ylim = c(0, 50))
      ggpar(p, yscale = "log2")
      ggpar(p, yscale = "log2", format.scale = TRUE)
      p + yscale("log2", .format = TRUE)

      # 定义坐标轴的文字和刻度
      p + 
        font("xy.text", size = 12, color = "blue", face = "bold") +
        rotate_x_text(45)+       
        rotate_y_text(45)

      # remove ticks and axis texts
      p + rremove("ticks")+
        rremove("axis.text")

      # 旋转图形
      p + rotate()

      # 修改主题
      # Gray主题
      p + theme_gray()
      # Black 和 White主题
      p + theme_bw()
      p + theme_light()
      p + theme_minimal()
      p + theme_void()


      参考资料:

      1http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/82-ggplot2-easy-way-to-change-graphical-parameters/


      关于ggpubr包,您有什么想法请留言。

      需要深入交流和沟通,请加我的微信:luqin360。备注:实名+工作或者专业,否则不会通过。


      数据思考与践行

      文章推荐

      1数据可视化分析

      你点的每个在看,我都认真当成了喜欢

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      PDFMV框架
      2021年9月9日

      下一篇文章

      集成特征选择
      2021年9月9日

      你可能也喜欢

      2-1675088548
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      30 1月, 2023
      9-1675131201
      如何快速批量修改 Git 提交记录中的用户信息
      26 1月, 2023
      8-1678501786
      肿瘤细胞通过改变CD8+ T细胞中的丙酮酸利用和琥珀酸信号来调控抗肿瘤免疫应答。
      7 12月, 2022

      留言 取消回复

      要发表评论,您必须先登录。

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?