美文网首页
2020-04-13 R学习4

2020-04-13 R学习4

作者: 非非_1304 | 来源:发表于2020-04-13 20:26 被阅读0次

频率直方图与盒形图

1.频率直方图

hist()

举例

data <-read.table("circ.expression.annot.xls",header=T,row.names=1,sep="\t")
dim(data)
[1] 4999   13
length <- data$spliced_length
hist(length)
1.png

数值取值差异太大,存在少量离群的长度,分区间统计的标尺不是我们认为规定的,是默认的。

breaks #参数命令

举例

breaks = 10  
# 将数值的从最小到最大分为10份,然后进行统计;
breaks = c(200*0:500) 
# 分区间统计, 以 200为基本区间统计500个区间,即从0~100,000;
# breaks 公式的最大、最小值范围应该要包含绘图数据的最大,最小值;
hist(length,breaks = c(200*0:500))
2.png

3000以上出现频率太低,可以忽略不计,可以限制坐标轴长度

hist(length,breaks = c(200*0:500), xlim=c(0,3050))
3.png
Freq=TRUE  #计算频次,绝对数量
Freq=FALSE #计算频率,相对量
默认情况下,统计的是频率(次数的比例)
某个区间样本占总体的比例 = 频率 X 区间宽度 
某个区间频次 = (频率 X 区间宽度)X  样本总数 

接着美化直方图

hist(length,breaks = c(200*0:500),xlim=c(0,3050),ylim=c(0,2000),ylab="number of circRNA",freq=TRUE,col="blue",main="length of circRNA")
规定x、y轴的范围(xlim、ylim),定义y轴名称(ylab),定义图形的主题(mian)和直方图的颜色(col),计算绝对次数
4.png

频率直方图-频率图加拟合线

拟合曲线,density可以计算密度频率曲线,所以要使用频率,将Freq改为FALSE

hist(length,freq=FALSE,breaks = c(200*0:500),xlim=c(0,3050),ylab="number of circRNA",col="blue",main="length of circRNA")
freq 重新调整为FALSE,ylim不定义

拟合线

dens=density(length)
str(dens)  # 看看dens里面有哪些东西
lines(dens)
5.png

统计结果输出

result=hist(length,freq=FALSE,breaks = c(200*0:15,100000),xlim=c(0,3050),ylab="number of circRNA",col="blue",main="length of circRNA")
str(result)  # 显示里面包含的内容
region_start=result$breaks[-length(result$breaks)]  #剔除最后一个
region_end=result$breaks[-1]   #剔除第一个
middle=result$mids
counts=result$counts
density=result$density
out= cbind(region_start,region_end,middle,counts,density)  #合并向量,形成数据框
write.table(out,"out.txt",sep="\t",row.name=F) #输出
6.png
7.png

频率直方图-加点和线

freq 重新调整为TRUE,将会在直方图的基础上加点图和折线图

result =hist(length,freq=TRUE,breaks = c(200*0:500),xlim=c(0,3050),ylab="number of circRNA",col="blue",main="length of circRNA")
#以下用次级函数描点和描线
points(result$mids,result$counts,col="red",pch=16)
lines(result$mids,result$counts,lty=2)
8.png

延展

延展.png

2.盒形图

几个重要的线

9.png
盒形图对分类数据有很好的比较效果呈现,能够清晰地评价比较多组数据的变异大小、总体差异度
10.png
mydata <- read.table("circ.expression.annot.xls",header=T,row.names=1,sep="\t")  #先导入表格
boxplot(spliced_length ~ annot_type , data = mydata)  #画盒形图
或者boxplot(mydata$spliced_length ~ mydata$annot_type)  #画盒形图
11.png

加点修饰

boxplot(spliced_length ~ annot_type , data = mydata,col="red",ylim=c(0,40000))  #盒形图变红色,y轴限制到40000
12.png

mar=c(),对应下、左、上、右的边界宽度,默认是5.1,4.1,4.1,2.1
par(mar=c(5.1,6.1,4.1,2.1),las = 1) # las=1,y坐标轴标签平行,增加左边界的宽度
boxplot(spliced_length ~ annot_type , data = mydata,col="red",ylim=c(0,40000),horizontal = TRUE)  #整个图变水平
13.png

将两个盒形图放在一个图里,分组的组合

举例:
先画一个盒形图

boxplot(len ~ dose, data = ToothGrowth,
        boxwex = 0.25, at = 1:3 - 0.2,
        subset = supp == "VC", col = "yellow",
        main = "Guinea Pigs' Tooth Growth",
        xlab = "Vitamin C dose mg",
        ylab = "tooth length",
        xlim = c(0.5, 3.5), ylim = c(0, 35), yaxs = "i")
#boxwex缩窄盒形图,at:定义盒子的位置,向左移动0.2,subset定义绘图用子集
14.png

使用add 和 'at = ' 来实现亚分组盒形图的共同展示,使用牙齿生长的数据
add=TRUE,将不会绘制新图,而是在旧图上添加内容

boxplot(len ~ dose, data = ToothGrowth, add = TRUE,
        boxwex = 0.25, at = 1:3 + 0.2,
        subset = supp == "OJ", col = "orange")
15.png
加标签
legend(2, 9, c("Ascorbic acid", "Orange juice"),
       fill = c("yellow", "orange")
16.png

延展

延展2.png

相关文章

网友评论

      本文标题:2020-04-13 R学习4

      本文链接:https://www.haomeiwen.com/subject/aevwmhtx.html