首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >day5记录 R语言绘图

day5记录 R语言绘图

原创
作者头像
Qianhui Cheng
修改2025-02-12 11:23:02
修改2025-02-12 11:23:02
2680
举报

#作图分三类

1.基础包base 略显陈旧 了解一下

代码语言:r
复制
plot(iris[,1],iris[,3],col = iris[,5]) 
text(6.5,4, labels = 'hello')
dev.off() #关闭画板

2.ggplot2 中坚力量,语法有个性

代码语言:r
复制
library(ggplot2)
ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species))

3.ggpubr 新手友好型 ggplot2简化和美化 褒贬不一 可以应急使用 相当于ggplot2的阉割版本

代码语言:r
复制
library(ggpubr)
ggscatter(iris,
          x="Sepal.Length",
          y="Petal.Length",
          color="Species")

ggplot2 绘图

代码语言:r
复制
library(ggplot2)

绘图模版

ggplot(data = <DATA>) +

geom_<FUNCTION>(mapping = aes(<MAPPINGS>))

列名不带引号,函数之间写加号

#1.入门级绘图模板:作图数据,横纵坐标

代码语言:r
复制
ggplot(data = iris)+
  geom_point(mapping = aes(x = iris[,1],
                           y = Petal.Length))

2.属性设置(颜色color、大小size单位mm、透明度alpha、点的形状shape数字编号表示,线型等)

2.1 手动设置,需要设置为有意义的值

代码语言:r
复制
ggplot(data = iris) + 
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length), 
             color = "red",
             alpha = 0.4,
             shape = iris[,4])

ggplot(data = iris) + 
  geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length), 
             size = 5,     # 点的大小5mm
             alpha = 0.5,  # 透明度 50%
             shape = 8)  # 点的形状

2.2 映射:按照数据框的某一列来定义图的某个属性 用aes()设置

代码语言:r
复制
ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species)) 

#color = Species是一种映射

#此处如果写color = "xxx" 结果是只会出来一种颜色,因为会认为只需要一种颜色

Q1 能不能自行指定映射的具体颜色? scale_color_manual人工设置颜色 提供>=需要的数量

代码语言:r
复制
ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species))+
  scale_color_manual(values = c("blue","grey","red")) #删除color=Species,这行代码无法改变颜色

#想要什么颜色就有什么颜色-十六进制颜色编码

代码语言:r
复制
ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species))+
  scale_color_manual(values = c("#2874C5","#e6b707","#f87669"))

#paletteer-集成多个配色R包,两千多种选择

代码语言:r
复制
if(!require(paletteer))install.packages("paletteer",ask = F,update = F)
if(!require(awtools))install.packages("awtools",ask = F,update = F)
library(paletteer)
ggplot(data = iris)+ 
  geom_point(mapping = aes(x = Sepal.Length, 
                           y = Petal.Length, 
                           color = Species))+ 
  scale_color_paletteer_d("awtools::mpalette")  #用别人R包里的配色
palettes_d_names
#View(palettes_d_names)

Q2 区分color和fill两个属性

Q2-1 空心形状和实心形状都用color设置颜色

代码语言:r
复制
ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species),
             shape = 17) #17号,实心的例子

ggplot(data = iris)+
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length,
                           color = Species),
             shape = 2) #2号,空心的例子
### Q2-2 既有边框又有内心的,才需要color和fill两个参数

ggplot(data = iris)+  
  geom_point(mapping = aes(x = Sepal.Length,
                           y = Petal.Length),
             shape = 24,
             color = "red",          				     
             fill = "yellow") #24号,双色的例子 fill:里面填充的颜色 color:可能是实心也可能是空心

3.几何对象:以一个geom函数画出来的所有东西为一个几何对象

#局部设置和全局设置

代码语言:r
复制
ggplot(data = iris) + 
  geom_smooth(mapping = aes(x = Sepal.Length, 
                          y = Petal.Length))+ #此处为局部设置 仅对当前图层有效
  geom_point(mapping = aes(x = Sepal.Length, 
                           y = Petal.Length))

ggplot(data = iris,mapping = aes(x = Sepal.Length, y = Petal.Length))+ #此处为全局设置 对所有图层都生效
  geom_smooth()+
  geom_point()

4.位置

#抖动的点图

代码语言:r
复制
ggplot(data = iris,mapping = aes(x = Species, 
                                 y = Sepal.Width,
                                 fill = Species)) + 
  geom_boxplot()+
  geom_point()

ggplot(data = iris,mapping = aes(x = Species, 
                                 y = Sepal.Width,
                                 fill = Species)) + 
  geom_boxplot()+
  #geom_point(position = "jitter")
  geom_jitter() #抖动图

5.坐标系

代码语言:r
复制
ggplot(data = iris,mapping = aes(x = Species, 
                                 y = Sepal.Width,
                                 fill = Species)) + 
  geom_boxplot()+
  geom_jitter()+ 
  coord_flip() #翻转坐标系

6.主题

代码语言:r
复制
ggplot(data = iris,mapping = aes(x = Species, 
                                 y = Sepal.Width,
                                 fill = Species)) + 
  geom_boxplot()+
  geom_jitter()+ 
  theme_bw() #简洁主题 theme_classic

ggpubr 搜代码直接用,基本不需要系统学习 抄袭并简化了ggplot2

代码语言:r
复制
library(ggpubr)
p = ggboxplot(iris, x = "Species", y = "Sepal.Length",
              color = "Species", shape = "Species",add = "jitter")
p
my_comparisons <- list( c("setosa", "versicolor"), 
                        c("setosa", "virginica"), 
                        c("versicolor", "virginica") ) #组间比较
p + stat_compare_means(comparisons = my_comparisons,
                       aes(label = after_stat(p.signif))) #分布叠加 aes里面的函数:显示显著性

图片保存的三种方法

#1.基础包作图的保存

代码语言:r
复制
pdf("iris_box_ggpubr.pdf")
boxplot(iris[,1]~iris[,5])
text(6.5,4, labels = 'hello')
dev.off()

#2.ggplot系列图(包括ggpubr)通用的简便保存 ggsave

代码语言:r
复制
p <- ggboxplot(iris, x = "Species", 
               y = "Sepal.Length",
               color = "Species", 
               shape = "Species",
               add = "jitter")
ggsave(p,filename = "iris_box_ggpubr.png")

3.eoffice包 导出为ppt,全部元素都是可编辑模式 调字体字号位置等 很多行列的不适用

代码语言:r
复制
devtools::install_github("guokai8/eoffice")
devtools::install_github("davidgohel/rvg")
BiocManager::install("davidgohel/rvg")
library(eoffice)
topptx(p,"iris_box_ggpubr.pptx")

4 pathwork包

#完美兼容ggplot2

#支持直接p1+p2拼图,复杂布局代码易读性更强

#可以给子图添加标记

#可以统一修改子图

#可以将子图的图例移到一起,整体性好

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.基础包base 略显陈旧 了解一下
  • 2.ggplot2 中坚力量,语法有个性
  • 3.ggpubr 新手友好型 ggplot2简化和美化 褒贬不一 可以应急使用 相当于ggplot2的阉割版本
  • ggplot2 绘图
  • 绘图模版
  • ggplot(data = <DATA>) +
  • geom_<FUNCTION>(mapping = aes(<MAPPINGS>))
  • 列名不带引号,函数之间写加号
  • 2.属性设置(颜色color、大小size单位mm、透明度alpha、点的形状shape数字编号表示,线型等)
    • 2.1 手动设置,需要设置为有意义的值
    • 2.2 映射:按照数据框的某一列来定义图的某个属性 用aes()设置
    • Q1 能不能自行指定映射的具体颜色? scale_color_manual人工设置颜色 提供>=需要的数量
    • Q2 区分color和fill两个属性
      • Q2-1 空心形状和实心形状都用color设置颜色
      • 3.几何对象:以一个geom函数画出来的所有东西为一个几何对象
      • 4.位置
      • 5.坐标系
      • 6.主题
    • ggpubr 搜代码直接用,基本不需要系统学习 抄袭并简化了ggplot2
  • 图片保存的三种方法
  • 3.eoffice包 导出为ppt,全部元素都是可编辑模式 调字体字号位置等 很多行列的不适用
  • 4 pathwork包
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档