R语言统计相同ID出现的频率并用ggplot2绘制柱状图

统计相同ID出现的频率,并用ggplot绘制柱状图;

这里有一个ID向量,需要统计一下相同的ID出现的频率,并绘制柱状图,数据为一个向量data如下:

attachments-2018-07-FoqVwQc85b3885996c6ed.jpg

需要统计相同的ID出现的频率并绘制柱状图,如下:


attachments-2018-07-eSKUaPV25b3885d9acf9e.jpg

R语言代码,统计向量的频次,其实很简单,用table方法一步就完成,后面就是绘图了:

注意本代码的主题为cowplot主题适合SCI文章发表,并设置了柱状图上加数字;


library(reshape2)
local({r <- getOption("repos")  ;r["CRAN"] <- "http://mirrors.tuna.tsinghua.edu.cn/CRAN/" ;options(repos=r)}) 
library(ggplot2)
library(cowplot)
library(RColorBrewer)


pairjoin <- function(x){ 
  ran=x
  ran[length(ran)]=">=11"
  ran=ran[-1]
  ran
}
#统计频率,并把大于11的 归类到一起:
data=table(data)
data[data>10]=11

MassStatN <- with(hist(data, breaks=seq(0, 11, by = 1), plot=FALSE),
                     data.frame(N=counts, Mass=pairjoin(breaks), PCT=counts/sum(counts)))
MassStatN
MassStatN$Mass=factor(MassStatN$Mass,levels = MassStatN$Mass,order=T)
pn=ggplot(data=MassStatN, aes(x=Mass, y=N)) +
  geom_bar(fill="#4DAF4A",alpha = .9, stat="identity",width=0.8) +
  geom_text(aes(x=Mass,y=N+20,label=N))+
  guides(fill=FALSE)+
  theme(legend.key = element_blank(),legend.title = element_blank()
  )+  xlab("Peptide number")+ylab("Protein number") +ggtitle("Peptide number distribution")
pn

  • 发表于 2018-07-01 15:46
  • 阅读 ( 8920 )
  • 分类:R

0 条评论

请先 登录 后评论
omicsgene
omicsgene

生物信息

698 篇文章

作家榜 »

  1. omicsgene 698 文章
  2. 安生水 343 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 78 文章
  6. 红橙子 78 文章
  7. rzx 74 文章
  8. CORNERSTONE 72 文章