无标题文章

[TOC]

ggplot2 学习笔记

1.安装

install.packages('ggplot2')

2.qplot

set.seed(1410)##让样本可重复
dsmall<-diamonds[sample(nrow(diamonds),100),]#取前100行
head(dsmall,4)
qplot(carat,price,data=diamonds)
> head(diamonds,4)
  carat     cut color clarity depth table price    x    y    z
1  0.23   Ideal     E     SI2  61.5    55   326 3.95 3.98 2.43
2  0.21 Premium     E     SI1  59.8    61   326 3.89 3.84 2.31
3  0.23    Good     E     VS1  56.9    65   327 4.05 4.07 2.31
4  0.29 Premium     I     VS2  62.4    58   334 4.20 4.23 2.63
Rplot01
Rplot01
qplot(carat,price,data=dsmall,colour=color,shape=cut)
Rplot02
Rplot02
qplot(log(carat),log(price),data=diamonds,alpha=I(1/100))
# I()手动设定图形属性,如color=I('red');alpha设定透明度,0为完全透明
Rplot03
Rplot03
#geom="point",散点图
#geom="smooth",拟合平滑曲线
#geom="boxplot",箱线图
#geom="path"和geom="line",可在数据点之间绘制连线
#geom="histogram",直方图
#geom="freqploy",多边形
#geom="density",密度曲线
#geom="bar",条形图
qplot(carat,price,data=dsmall,geom=c("point","smooth")) # 若不想绘制标准误差,se=FALSE

Rplot04
Rplot04
qplot(color,price/carat,data=diamonds,geom="jitter",alpha=I(1/5)) #扰动点图
Rplot05
Rplot05
qplot(carat,data=diamonds,geom="histogram",binwidth=0.05,xlim=c(0,4),fill=color)
Rplot06
Rplot06
qplot(carat,data=diamonds,geom="density",xlim=c(0,4),color=color)
Rplot07
Rplot07
qplot(cut,price,data=diamonds,geom="boxplot",fill=cut)
Rplot09

2.1分面

#row_var ~ col_var;row_var ~ .会创建一个单列多行的图形矩阵
qplot(carat,data=diamonds,facets=color ~ .,geom="histogram",binwidth=0.1,xlim=c(0,3))
Rplot08
Rplot08

2.2选项

# xlim,ylim: x轴和y轴范围,xlim=c(0,20)
# log: log='x',表示x轴取对数
# main:图形主标题 
# xlab,ylab: x,y轴标签文字

# 建立图形
p<-qplot(....)
# 保存图形对象
save(p,file="plot.rdata")
# 读入图形对象
load("plot.rdata")
# 将图片保存成png格式
ggsave("plot.png",width=5,height=5)

2.3甲基化的部分图

v=''
v$a=c(10,20,40,60,70)
v$b=c(-0.01,-0.02,-0.01,-0.02,-0.01)
v$d=c('Upstream','TSS','Genebody','TTS','Downstream')
v<-data.frame(v)
sort<-df[240]
sort<-sort(sort)
sort[240]
library('ggplot2')
df<-read.table('element.final',header=TRUE)
svg('TSS.svg')
ggplot(data=df)+geom_line(aes(x=pos,y=value/sort[240],color=type))+
  ylab('normalized methylation level')+geom_text(data=v,aes(x=a,y=b,label=d),size=3,color=I('red'))+
  xlab('')
dev.off()
TSS
setwd('/lustre/project/og04/shichunwei/project/bisulfite_sequencing/mouse/out/SRR1040649/test')
df<-read.table("NC_000084.6.txt",header=TRUE)
library('ggplot2')
qplot(count,value,data=df,geom="line",color=color,facets=type~.,alpha=I(8/10))+theme(legend.position='none')+
  xlab('')+ylab('')
chr

2.4 其他选项

library('ggplot2')
p<-qplot(cyl,wt,data=mtcars)
p+scale_x_continuous(breaks=c(5.5,6.5)) # breaks 横坐标只显示5.5,6.5
p+scale_x_continuous(limits=c(5.5,6.5)) # limits 只显示5.5~6.5范围
p<-qplot(wt,cyl,data=mtcars,color=cyl)
p+scale_color_gradient(breaks=c(5.5,6.5)) # 与上面的类似,只是作用范围不是横坐标而是图注
p+scale_color_gradient(limits=c(5.5,6.5)) # 
scale_x_log10() # x 轴转换成log10
#图例
theme(legend.position=right,left,top,bottom,none) # 控制图例位置

Rplot10
pie<-ggplot(mtcars,aes(x=factor(1),fill=factor(cyl)))+geom_bar(width=1)
pie + coord_polar(theta='y')+theme_bw()+xlab('')+ylab('')+labs(fill='')+
    theme(axis.text = element_blank())+theme(axis.ticks = element_blank())
# theme_bw() 更改主题背景,改为白色
Rplot11

你可能感兴趣的:(无标题文章)