前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言画图——生信技能书

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

原创
作者头像
用户11211038
发布2024-07-18 11:04:47
450
发布2024-07-18 11:04:47
举报
文章被收录于专栏:R语言学习

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是位置关系,倒数第二是坐标系;最后是分面

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档