[ggplot2]初步认识
2020-02-18 本文已影响0人
巩翔宇Ibrahimovic
作为R里面用途最广泛的一个画图包,是必须要学会的。数据分析的过程无法给人瞬间展示出来,但是画图却可以,接下来几天,我就看看这个R包怎么用,能做什么。
安装并加载
> install.packages("ggplot2")
> library(ggplot2)
绘制核酸多样性的散点图。
首先使用ggplot(d)
来提供数据框的画板(注意ggplot2只能对数据框进行操作,所以在画图前务必确保数据的简洁性且为数据框格式)。其次,添加图层,+
来做连接。可以是点(geom_point()),也可以是其他类型 ,e.g., geom_line(), geom_bar(), geom_density(), geom_boxplot().
#读取
d <- read.csv("Dataset_S1.txt",header = T,stringsAsFactors = F)
#设置新变量
d$position <- (d$end+d$start)/2
#作点图,并给x和y轴添加标题
ggplot(d)+geom_point(aes(x=position,y=Divergence))+xlab("chromose position(basepair)")+ylab("nuvleotide diversity")
#改变颜色
ggplot(d)+geom_point(aes(x=position,y=Divergence),color="red")
#改变点的透明度,来减少点的覆盖,通过alpha这个选项
ggplot(d)+geom_point(aes(x=position,y=Divergence),alpha=0.01)
做密度图
ggplot(d) + geom_density(aes(x=Divergence), fill="black")
添加一条曲线,而不是设置透明度来表示趋势。
ggplot(d, aes(x=depth, y=total.SNPs)) + geom_point() + geom_smooth()
#默认曲线是有置信区间的,可以添加geom_smooth(se=FALSE)去掉置信区间
ggplot(d, aes(x=depth, y=total.SNPs)) + geom_point() +geom_smooth(se=FALSE)
Binning(discretization) Data with cut() and Bar Plots with ggplot2**
#cut()将数据分成相同大小的区间
d$GC.binned <- cut(d$X.GC, 5)
d$GC.binned
#使用table()进行计数
table(d$GC.binned)
柱状图的使用
ggplot(d) + geom_bar(aes(x=GC.binned))
ggplot(d) + geom_density(aes(x=depth, linetype=GC.binned), alpha=0.5)
素材来源:
https://github.com/vsbuffalo/bds-files
(Chapter8 R)
参考资料:
《Bioinformatics Data Skills》