哈喽,我是学习生物信息学的阿榜!非常感谢您能够点击进来查看我的笔记。我致力于通过笔记,将生物信息学知识分享给更多的人。如果有任何纰漏或谬误,欢迎指正。让我们一起加油,一起学习进步鸭?
这份思维导图可以让大家更容易地了解笔记里面的内容哦?:
大家记住哦,画图是让自己的数据可视化
我给大家介绍下常见的可视化R包:
一、基础绘图函数
①、复习plot()函数
提个小问题:图中6.5和4是什么?
答案:6.5和4是hello的坐标轴位置
#作图分三类
#1.基础包 略显陈旧 了解一下
plot(iris[,1],iris[,3],col = iris[,5])
text(6.5,4, labels = 'hello')
dev.off() #关闭画板
②、先观察下面两个函数,后面会详细介绍:
二、ggplot2包
大家看看学习目录,这是我们接下来要学习的内容
1、入门级绘图模板
大家记住上面的模板,这是基本语法格式
ggplot2与其他包语法有些不同:
2、属性设置,太多了,大家需要使用的时候再来看看吧?
3、映射(重点哦)
关键词:数据框、某一列、图的某个属性
按照上述模板一一对应观察,你能找出他们的规律✌
①、映射设置
提个小问题:一个color的实际参数有引号,另一个color的实际参数没有引号,这是为什么呢?
答案:一个是映射,aes()的参数;另一个是手动设置,geom_point()的参数。
可视化原理如图所示
左边是映射,右边是手动设置
②、下面是几个常见的问题,解决了它们,能让我们图形更加个性化
上述问题加函数
提个小问题:color与fill有什么不同呀?
答案:color设置空心边框的颜色,fill设置实心内容的颜色
4、分面
上图facet_wrap(~ Species)按照三种Species分成了三个面
上图按照两种类型进行分面:Group、Species
上图有两个问题,之前的阿榜的生信笔记都有提到过哦
答案:问题1的答案是letters是内置数据,大家可以在RStudio上试一试
问题2的答案是R语言的默认思想哦
sample()随机抽取个数
5、几何对象
①、ggplot2的几何对象有很多,如下图所示:
②、几何对象可以叠加
geom_smooth()平滑线函数
geom_point()点函数
ggplot()用“+”连接
几何函数叠加有局部和全局两种叠加方式,两种方法各有优势哦
两种设置的作用:
⑥、统计变换
⑦、位置关系
geom_point()与geom_jitter()的区别如上图所示
⑧、坐标系
注意:不同的函数顺序画出图的效果是不一样的哦?,大家可以拿代码试试
⑨、学了这么多知识点,大家是不是有点迷糊了?现在阿榜给大家带来了总结?
不懂的参数,大家可以用帮助文档查看哦?
#2.ggplot2 中坚力量,语法有个性
##ggplot2的特殊语法:列名不带引号,行末写加号
library(ggplot2)
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species),
shape = 24,
fill="pink")+
scale_color_manual(values = c("blue","yellow","red"))
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))+
facet_wrap(~ Species)
dat=iris
data$Group=sample(letters[1:5],150,replace=T)
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))+
facet_grid(Group~ Species)
三、ggpubr包
ggpubr包相比ggplot2包语法要简单:
两两之间的比较:
#3.ggpubr 新手友好型 ggplot2简化和美化 褒贬不一
library(ggpubr)
ggscatter(iris,
x="Sepal.Length",
y="Petal.Length",
color="Species")
四、图片的保存
三段式:
五、阿榜给大家带来一个被叫做神器的R包
为什么它会被叫做神器?
因为它能生成PPT,其中的作用大家自己去体会吧?
六、拼图
这也是一个拼图神器包,以后不用为拼图烦恼了?
七、画板报错
画板报错是我们唯一不用管的报错✌
阿榜送大家一句话:
下面是这份笔记所涉及到的代码,大家快拿去试试吧?
#作图分三类
#1.基础包 略显陈旧 了解一下
plot(iris[,1],iris[,3],col = iris[,5])
text(6.5,4, labels = 'hello')
dev.off() #关闭画板
#2.ggplot2 中坚力量,语法有个性
##ggplot2的特殊语法:列名不带引号,行末写加号
library(ggplot2)
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species),
shape = 24,
fill="pink")+
scale_color_manual(values = c("blue","yellow","red"))
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))+
facet_wrap(~ Species)
dat=iris
data$Group=sample(letters[1:5],150,replace=T)
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))+
facet_grid(Group~ Species)
library(ggplot2)
#1.入门级绘图模板:作图数据,横纵坐标
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length))
#2.属性设置(颜色、大小、透明度、点的形状,线型等)
#2.1 手动设置,需要设置为有意义的值
ggplot(data = iris) +
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length),
color = "blue")
ggplot(data = iris) +
geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length),
size = 5, # 点的大小5mm
alpha = 0.5, # 透明度 50%
shape = 8) # 点的形状
#2.2 映射:按照数据框的某一列来定义图的某个属性
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))
## Q1 能不能自行指定映射的具体颜色?
ggplot(data = iris)+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,
color = Species))+
scale_color_manual(values = c("blue","grey","red"))
## Q2 区分color和fill两个属性
### Q2-1 空心形状和实心形状都用color设置颜色
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,
color = Species),
shape = 24,
fill = "black") #24号,双色的例子
#3.分面
ggplot(data = iris) +
geom_point(mapping = aes(x = Sepal.Length, y = Petal.Length)) +
facet_wrap(~ Species)
#双分面
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)
#4.几何对象
#局部设置和全局设置
ggplot(data = iris) +
geom_smooth(mapping = aes(x = Sepal.Length,
y = Petal.Length))+
geom_point(mapping = aes(x = Sepal.Length,
y = Petal.Length,color=Species))
ggplot(data = iris,mapping = aes(x = Sepal.Length, y = Petal.Length))+ ##ggplot()领头羊
geom_smooth()+
geom_point()
#5.统计变换-直方图
View(diamonds)
table(diamonds$cut)
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut))
ggplot(data = diamonds) +
stat_count(mapping = aes(x = cut))
#统计变换使用场景
#5.1.不统计,数据直接做图
fre = as.data.frame(table(diamonds$cut))
fre
ggplot(data = fre) +
geom_bar(mapping = aes(x = Var1, y = Freq), stat = "identity")
#5.2count改为prop
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1)) ##group = 1:五个变量数值都在一个组,他们分别占了多少百分比
#6.位置关系
# 6.1抖动的点图
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_jitter()
# 6.2堆叠直方图
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut,fill=clarity))
# 6.3 并列直方图
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = clarity), position = "dodge")
#7.坐标系
#翻转coord_flip()
ggplot(data = mpg, mapping = aes(x = class, y = hwy)) +
geom_boxplot()+
coord_flip()
#极坐标系coord_polar()
bar <- ggplot(data = diamonds) +
geom_bar(
mapping = aes(x = cut, fill = cut),
width = 1
) +
theme(aspect.ratio = 1) +
labs(x = NULL, y = NULL)
bar
bar + coord_flip()
bar + coord_polar()
以上是我这次在学习生物信息学过程中所整理的笔记。希望大家能够一起学习,共同进步。如果在笔记中有错误或者不足之处,欢迎大家指正,我们一起加油鸭?
引用自生信技能树——小洁老师
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。