1.使用循環(huán)膳帕,對(duì)iris的1到4列分別畫點(diǎn)圖(plot)
library(ggplot2)
par(mfrow = c(2,2))#par(no.readonly = TRUE)
iris
iris[,1:4]
for(i in 1:4){
plot(iris[,i],col = iris[,5])
}
image.png
for(i in 1:4){
plot(iris[,i]) #對(duì)比一下,分組顏色不同了
}
image.png
par()學(xué)習(xí)網(wǎng)址:
https://zhuanlan.zhihu.com/p/21394945
http://www.reibang.com/p/5d44a08f67a5
我學(xué)習(xí)的par()函數(shù)的第一個(gè)函數(shù)是:
mfcol, mfrow: 調(diào)整圖形輸出設(shè)備中子圖排列的向量, c(nrow, ncol), mfcol 讓子圖按照列優(yōu)先排列, 相應(yīng)的, mfrow 讓子圖按照行優(yōu)先排列. 當(dāng)設(shè)置 mfcol mfrow 后, cex 和 mex 的基本單位都相應(yīng)減小.
2.生成一個(gè)隨機(jī)數(shù)(rnorm)組成的10行6列的矩陣,列名為sample1抹蚀,sample2….sample6笨农,行名為gene1荠医,gene2…gene10,分組為sample1持隧、2即硼、3屬于A組,sample4屡拨、5只酥、6屬于B組。用循環(huán)對(duì)每個(gè)基因畫ggplot2箱線圖呀狼,并嘗試拼圖裂允。
library(ggplot2)
exp = matrix(rnorm(60),nrow = 10)
colnames(exp) <- paste0("sample",1:6)
rownames(exp) <- paste0("gene",1:10)
exp[1:4,1:4]
另一種方法矩陣合并向量! dat = cbind(t(exp),group = rep(c("A","B"),each = 3))
以下為dplyr包中mutate函數(shù)新增列哥艇!
dat = data.frame(t(exp))
library(ggplot2)
library(dplyr)
dat = mutate(dat,group = rep(c("A","B"),each = 3))
dat
p = list()
for(i in 1:(ncol(dat)-1)){
p[[i]] = ggplot(data = dat,aes_string(x = "group",y=colnames(dat)[i]))+
geom_boxplot(aes(color = group))+
geom_jitter(aes(color = group))+
theme_bw()
}#老師還增加了抖動(dòng)點(diǎn)和主題
library(patchwork)
wrap_plots(p,nrow = 2,guides = "collect")
#patchwork也可以直接輸出列表圖像绝编,更簡(jiǎn)潔,速度更快貌踏,perfect
# 分面也行的十饥。
exp = matrix(rnorm(60),nrow = 10)
colnames(exp) <- paste0("sample",1:6)
rownames(exp) <- paste0("gene",1:10)
exp[1:4,1:4]
dat = data.frame(t(exp))
dat = mutate(dat,group = rep(c("A","B"),each = 3))
library(tidyr)#利用tidyr包的gather函數(shù),將dat轉(zhuǎn)換成以gene和group中元素對(duì)應(yīng)的值為expression的3列數(shù)據(jù)框祖乳。
dat2 = gather(dat,key = "gene",value = "expression",-group)
ggplot(data = dat2)+
geom_boxplot(aes(x = group,y = expression,color = group))+
theme_bw()+
facet_wrap(~gene,nrow = 2) #以gene列為標(biāo)準(zhǔn)分面!!
# 3. 模擬出幾個(gè)類似的文件逗堵,用R實(shí)現(xiàn)批量重命名
f = c("a .txt","b .txt","c .txt")
for(i in 1:3){
file.create(f[[i]])
}
#直接命名之后file.create,向量取子集[]用一個(gè)應(yīng)該就可以
library(stringr)
f2 = str_remove(f," ")# stringr包的函數(shù),去除連接方式眷昆,這里去除了f種abc與.txt之間的空格蜒秤。
for(i in 1:3){
file.rename(f[[i]],f2[[i]])