本期介绍了利用R语言ggplot2包绘制核密度估计图。
核密度估计图(Kernel Density Estimation, KDE),是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,由Rosenblatt (1955)和Emanuel Parzen(1962)提出,又名Parzen窗(Parzen window)。分析核密度函数时主要观察其面积,而不是取值。核密度图中纵轴与横轴所围成的面积为1。
1 数据准备
数据输入格式(csv格式):
2 R包加载及数据导入
#下载包#
install.package("ggplot2")
#加载包#
library(ggplot2)
library(reshape2)
#数据载入#
data = read.table(file = 'C:/Rdata/jc/density1.csv', sep = ',', header = T) #header=T表示数据中的第一行是列名,如果没有列名就用 header=F
# 转换数据成长数据格式(ggplot常用)
data = melt(data) # melt为reshape2的函数
head(data)
如基因表达量数据或其他需要log函数处理可用下列代码
#data=log10(data[,2]+0.0001) #加0.0001主要为了计算有0不好计算,2列进行计算;如有2到12列进行计算则用[,2:12]
#round(data,2)
#data=data.frame(data)
#head(data)
#write.csv(data,'C:/Rdata/jc/density1.csv') #数据导出
#write.table(data,'C:/Rdata/jc/density1.txt')
3 密度图绘制
#基础密度图绘制#
p = ggplot(data, aes(x =value))#x轴表示基因表达值,y轴表示频率就不需要指定
p + geom_density(color = "black", #线和点的颜色
fill = "gray") #填充颜色
图1 基础核密度图
#美化-线条#
p + geom_density(aes(color = variable))#按照不同组改变线条颜色
图2 未填充核密度图
#美化-填充#
p + geom_density(aes(fill = variable), #按照不同组改变填充颜色
alpha=0.5, #调整透明度
linetype = 1, # 线条类型1是实线,2是虚线
size=0.5 # 线条粗细
)
# fill 指填充颜色
# color 指线和点的颜色
# colour 指图形边界颜色
图3美化+填充核密度图
好了本次分享就到这里。
关注公众号,发送“核估计密度图”获得完整代码