R语言画图——生信技能书

2024-07-18 11:04:47 浏览数 (2)

base ggplot2(以这个为主) ggpubr

拼图:

par里的mfrow

grid.arrage

cowplot:被最后一个取代

customlayout

patchwork:推荐使用

导出:

  • 经典三段论
  • ggsave(属于ggplot2)
  • eoffice—topptx

基础包:绘图函数

代码语言:txt复制
plot(iris[,1],iris[,3],col = iris[,5]) #设置横坐标,纵坐标,颜色
text(6.5,4, labels = 'hello')#添加文字

高级包:

ggplot2 中坚力量,语法有个性

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

ggplot2的语法:

  • 1.入门级绘图模板:

    library(ggplot2)

ggplot(data = iris)

geom_point(mapping = aes(x = Sepal.Length,

y = Petal.Length,

color = Species))

加粗部分是可以改变的地方;iris是数据来源,x和y为行和列名;列名不带引号;行末写加号代表是一个整体的代码

  • 2.属性的设置:
    • 手动设置
      • 颜色 color
      • 大小:size
      • 形状:shape
      • 透明度
      • 填充颜色
    • 映射:按照数据框的某一列来定义图的某个属性
      • color = Species(默认,按照这一列设置颜色)
      • 可以改变颜色:注意scale_color_manual和color是一起出现的!否则无效
      • 真正的颜色:颜色编码来代替;十六进制颜色编码:搜索引擎进行搜索
      • Q2:color和fill两个属性
        • 空心和实心得形状都用color设置颜色
        • fill:既有边框又有内心的,才需要color和fill两个参数
  • 3.分面:
    • 根据species放在同一种图里面;竖着切
    • 横着切和竖着切:先新增一列: dollar后面跟着新的列名:
      • 取值数量有限且有重复值,可以按照列分开
代码语言:txt复制
dat = iris
dat$Group = sample(letters[1:5],150,replace = T)
ggplot(data = dat)   
  geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length))   
  facet_grid(Group ~ Species) 
  • sample(letters[1:5],150,replace = T)
    • letters[1:5]#没有赋值也能够直接使用:是R中的内置数据
    • letters[1:5],3:#随机取值a b c d e中的三个
    • letters[1:5],6:#代码报错了:样本数量不能大于总体的数量:replace = F;这时候改成replace = T就行了
    • sample(letters[1:5],150,replace = T)
    • 不要修改内置数据!!—赋值给sample
    • 练习题:6.1
  • 4.几何对象
    • #局部设置和全局设置
代码语言:txt复制
ggplot(data = iris)   
  geom_smooth(mapping = aes(x = Sepal.Length, 
                          y = Petal.Length)) 
  geom_point(mapping = aes(x = Sepal.Length, 
                           y = Petal.Length))

这个为局部设置:仅对当前图层有效

代码语言:txt复制
ggplot(data = iris,mapping = aes(x = Sepal.Length, y = Petal.Length)) 
  geom_smooth() 
  geom_point()

这个为全局设置:对所有图层有效

  • 5.统计变换-直方图
代码语言:txt复制
View(diamonds)
table(diamonds$cut)

代码语言:txt复制
ggplot(data = diamonds)   
  geom_bar(mapping = aes(x = cut))

ggplot(data = diamonds)   
  stat_count(mapping = aes(x = cut))
  • geom_bar函数:绘制柱状图;y?是默认的;
  • 使用场景:
    • 使用表中数据直接作图,而不统计
代码语言:txt复制
fre = as.data.frame(table(diamonds$cut))
fre

ggplot(data = fre)  
  geom_bar(mapping = aes(x = Var1, y = Freq), stat = "identity")

stat = "identity":这样子才能编辑y

  • 使用场景2:不统计count,统计比例prop
代码语言:txt复制
ggplot(data = diamonds)   
  geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
  • group = 1:不用改, y = 也不需要改
  • 6.位置关系
    • 重叠—散开/错开 geom_point() 和geom_jitter()

给出的完整绘图模板;前三行是入门级别;stat是统计变换;position是位置关系,倒数第二是坐标系;最后是分面给出的完整绘图模板;前三行是入门级别;stat是统计变换;position是位置关系,倒数第二是坐标系;最后是分面

0 人点赞