前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言学习笔记-Day5

R语言学习笔记-Day5

原创
作者头像
用户11190095
发布2024-07-07 00:15:11
1020
发布2024-07-07 00:15:11
举报
文章被收录于专栏:生信学习笔记
代码语言:r
复制
plot(iris[,1],iris[,3],col=iris[,5])
text(6.5,4, labels = 'hello')
代码语言:r
复制
library(ggpubr)
p = ggboxplot(iris, x = "Species", y = "Sepal.Length",color = "Species",shape = "Species",add = "jitter");p
代码语言:r
复制
my_comparisons <- list(c("setosa","versicolor"),
                        c("setosa","verginica"),
                        c("versicolor","verginica"))
p + stat_compare_means(comparisons = my_comparisons,
                        aes(label = after_stat(p.signif)))

1 R语言画图

1.1 常用可视化R包和函数

作图:base, ggplot2, ggpubr

拼图:par里的mfrow, grid.arrange, cowplot, patchwork

导出:经典三段论、ggsave、eoffice-topptx

#ggsave服务于ggplot2

#eoffice可将图导出为ppt内可编辑元素

1.2 基础包(base)-绘图函数

高级/低级绘图函数

#高级绘图函数可独立于其它函数,低级绘图函数:用于在图中添加元素

高级绘图函数:

低级绘图函数:

plot(iris,1,iris,3,col=iris,5) text(6.5,4,labels = "hello") #plot()和text()分别为高级/低级绘图函数,须一起运行,单独运行text()则无法运行

1.3 ggplot2与ggpubr

ggplot2:

灰色背景

ggpubr:

ggplot2青春版,图片好看一些,ggplot2也可以用代码进行调整

1.4 ggplot2语法

1.4.1 入门级绘图模板

ggplot(data = <DATA>)+

  • <GEOMFUNCTION>(mapping = aes(<MAPPINGS>)) #MAPPINGS:映射 #需要:作图数据、横纵坐标 #可用ggplot2作图的函数均以geom命名,代表不同图像 #<MAPPING>处输入x = ,y = 行/列名,无需加"" #行/列名不带引号,函数间写“+”

1.4.2 属性设置

统一设置

颜色:color:字符串,blue, red等;

大小:size:单位mm;

形状:shape:0:20代表不同形状,以编号表示;

透明度:alpha;

填充颜色:fill

#统一设置需为有意义的值

示例:

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

映射:按照数据框的某一列定义某个属性

#可以将点设置成多个颜色,与数据对应,而非统一颜色

#统一设置时的参数从属于geom_function(),输入值为"颜色"(可设置为多个颜色,但不建议);映射的参数从属于aes(),输入值为行名

#自行指定映射的具体颜色

scale_color_manual(value=c("color","color")) ##必须先有aes(color) ###可用16进制颜色编码进行指定 ###也可用色彩R包paletteer

#图形分类关系与设置颜色参数

空心(无填充):color;实心(无边框):color;双色(边框+填充):color+fill

##设置方法与设置颜色相同,在aes()中加入shape=<数字编号>

示例:

ggplot(data = iris)+ geom_point(mapping = aes(x = Sepal.Length,y = Petal.Length,color = Species))+ scale_color_manual(values=c("blue","grey","red","#53485f"))

paleteer示例:

palettes_d_names ggplot(data = iris)+ geom_point(mapping = aes(x = Sepal.Length,y = Petal.Length,color = Species))+ scale_color_paletteer_d("awtools::mpalette")#"配色R包::配色名"

1.4.3 几何对象

一个geom函数所画出来的所有元素被称为几何对象

几何对象可叠加(在同一张图展示多中图像)

多张图存在图层顺序!具体顺序按照书写顺序从下往上安排图层

ggplot(data = iris)+ geom_point(mapping = aes(x = Sepal.Length,y = Petal.Length))+ geom_smooth(mapping = aes(x = Sepal.Length,y = Petal.Length)) -->简化为 ggplot(data = iris,mapping = aes(x = Sepal.Length,y = Petal.Length))+ geom_point()+ geom_smooth() -->单独为点图添加颜色 ggplot(data = iris,mapping = aes(x = Sepal.Length,y = Petal.Length))+ geom_point(mapping = aes(color = Species))+ geom_smooth() 或 ggplot(data = iris,mapping = aes(x = Sepal.Length,y = Petal.Length))+ geom_point(color = red")+ geom_smooth() aes()代表映射,只有键入该函数才能从数据中读取相应的内容 可以在已有公共设置下进行二次映射

代码不报错不代表没错!!!

重合会导致表现数据减少,图片存在歧义

1.4.4 位置

解决方法:

geom_point(position = "jitter") 或 geom_jitter

1.4.5 坐标系

coord_flip()#翻转坐标系

1.4.6 主题

theme_bw()#改变主题,去掉灰色背景 theme_classic()#去掉背景格纹 theme_dark()#深色主题 theme_minimal()#去背景 theme(legend.position="top")#图例改到上方

1.5 ggpubr

ggpubr画出的图像可以赋值(ggplot2也可赋值),可以进行后续改动/拼图

示例:

p = ggboxplot(iris, x = "Species", y = "Sepal.Length",color = "Species",shape = "Species",add = "jitter")

组间比较

示例:

my_comparisons <- list(c("setosa","versicolor") c("setosa","verginica") c("versicolor","verginica")) p + stat_compare_means(comparisons = my_comparisons, aes(label = after_stat(p.signif))) 要求:

  1. 必须是list
  2. 画几条线就要有几个元素
  3. 必须要有横坐标两两组合组成的向量,即comparisons比较的参数

2 图片保存

2.1 ggplot2系列:

ggsave("iris_box_ggpubr.png") ggsave(p,filename = "iris_box_ggpubr2.png")#已赋值 可使用绝对路径进行保存,但是更换设备无法从该路径进行导入 绝对路径:按照储存路径各级文件夹进行溯源 相对路径:”../../<filename>“ ggsave(p,filename = "fig/iris_box_ggpubr2.png")#保存至工作目录下的fig文件夹,若不存在该fig文件夹可新建文件夹。

2.2 通用:三段论

pdf("test.pdf")#保存的函数及文件名 ...#作图代码 dev.off()#关闭画板

2.3 eoffice系列

topptx(p,"iris_box_ggpubr.pptx")#新建并保存为pptx文件 对点过多的图不适用(e.g.火山图、热图),会导致ppt卡死

3 拼图

R包patchwork

优点:

1.语法简单,完美兼容ggplot2

2.拼图比例设置简单

#(1)支持p1+p2

#(2)布局代码易读性更强

#(3)可给子图添加标记

#(4)可统一修改所有子图

#(5)可将子图图例移到一起,整体性好

##常见问题

代码可运行却不出图

画板被占用——关闭画板

dev.off()#多次运行至null device,再重新运行代码或dev.new()

引用自生信技能树

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 R语言画图
    • 1.1 常用可视化R包和函数
      • 1.2 基础包(base)-绘图函数
        • 1.3 ggplot2与ggpubr
          • 1.4 ggplot2语法
            • 1.4.1 入门级绘图模板
            • 1.4.2 属性设置
            • 1.4.3 几何对象
            • 1.4.4 位置
            • 1.4.5 坐标系
            • 1.4.6 主题
          • 1.5 ggpubr
          • 2 图片保存
            • 2.1 ggplot2系列:
              • 2.2 通用:三段论
                • 2.3 eoffice系列
                • 3 拼图
                相关产品与服务
                图数据库 KonisGraph
                图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档