• <td id="8ecy8"><legend id="8ecy8"></legend></td>
  • <small id="8ecy8"><small id="8ecy8"></small></small>
  • 蛋白質組學

    北京青蓮百奧生物科技有限公司

    領跑智慧多組學,助力科研新發現


    服務咨詢熱線

    010-53395839

    蛋白質組學,糖基化蛋白質組學,多組學聯合分析
    您當前的位置 : 首 頁 > 新聞動態 > 公司新聞

    「青蓮百奧」【硬核干貨】文章大殺器之 R Language

    2020-04-17 00:00:00

    mmexportdabc008d51f4b6a4569147caba435677.png

    前言

    R語言是重要的生信分析軟件之一,不僅可以分析,計算,歸納數據,還可以把數據進行可視化,讓人更容易了解數據更深層的意義。

    學習 R 繪圖沒有什么技巧,只有記住常用參數的含義及用法,知道怎么去查找未知參數的含義及用法,再就是多多繪圖,什么東西用得多了,自然就熟了。
    如果需要更深入的了解,使用R 幫助。R 使用幫助:?加上函數或參數名。例如?plot,?legend。它可以教你怎么使用這個函數。
    如果,想更深入的了解這個函數,可以使用demo().例如demo(graphics)。
    通過前言,我們知道R語言可以把數據可視化,下面我們介紹,怎樣讓數據可視化,生成我們需要的柱狀圖,箱線圖,散點圖,熱圖等等。
    1.繪圖函數

    高級繪圖函數:創建一個新的圖形。簡單的理解,就是在空白的繪圖框上生成基礎的圖形。


    函數名   

     功能
    plot(x)   以x的元素值為縱坐標、以序號為橫坐標繪圖
    plot(x,y)    x與y的二元作圖
    pie(x)  餅圖
    boxplot(x)       盒形圖(也稱箱線圖)
    hist(x)    x的頻率直方圖
    barplot(x)         x的值的條形圖
    pairs(x) 如果x是矩陣或是數據框,作x的各列之間的二元圖
    coplot(x~y|z)    關于z的每個數值(或數值區間)繪制x與y的二元圖
    matplot(x,y)  二元圖,其中x的第1列對應y的第1列,依次類推
    qqnorm(x) 

    正態分位數-分位數圖

    image(x,y,z)      x,y,z三元圖
    heatmap(x)  熱圖



    低級繪圖函數:

    在現有的圖形上添加元素。簡單的理解,就是在生成的圖形上面,添加自己需要的圖例,標志,注釋等內容,讓人對可視化的圖更容易理解。


    函數名     功能
    points(x,y)   添加點,散點圖
    lines(x,y )  添加線,線
    text(x,y,labels,…)    在(x,y)處添加用labels指定的文字
    mtext(text,side=3,line=0,…)      在邊空添加用text指定的文字,side=1、 2、3、4 (底部、左邊、上部、右邊)
    segments(x0,y0,x1,y1)          從(x0,y0)各點到(x1,y1)各點畫線段
    arrows(x0,y0,x1,y1,...)     同上,但添加箭頭
    abline(a,b)      繪制斜率為b和截距為a的直線
    abline(h=y)       在縱坐標y處畫水平線
    abline(v=x)  在橫坐標x處畫垂直線
    abline(lm.obj)    畫出lm.obj確定的回歸線
    rect(x1,y1,x2,y2)     繪制長方形,(x1,y1)為左下角,(x2,y2)為右上角
    polygon(x,y)   繪制連接各x,y坐標確定的點的多邊形
    legend(x,y,legend)    在點(x,y)處添加圖例,說明內容由legend給定
    title()    添加標題,也可添加一個副標題
    axis(side,vect)  畫坐標軸,1 、 2 、 3 、 4 (底部、左邊、上部、右邊)
    box()       在當前的圖上加邊框
    rug(x)      在x軸上用短線畫出x數據的位置
    locator(n,type="n",…)        獲取鼠標在圖中點擊處的坐標


    2.繪圖參數



    選項功能
    add=FALSE如果是TRUE,疊加圖形到前一個圖上(如果有的話)
    axes=TRUE如果是FALSE,不繪制軸與邊框
    type="p"指定圖形的類型,“p”:點,“l”:線,“b”:點連線,“o”:同上,但是線在點上,“h”:垂直線,“s”:階梯式,垂直線頂端顯示數據,“S”:同上,但是垂直線底端顯示數據
    font字體
    xlim=,ylim=指定軸的顯示范圍
    xlab=,ylab=坐標軸的標簽
    main=主標題
    sub=副標題



    繪圖參數示例:

    mmexport1607324735533.jpg

    mmexport1607324743383.jpg

    plot(cars,font.lab=2,main="主標題",sub="副標題",type="p",xlim=c(7,20),ylim=c(20,100))

    plot(cars,font.lab=2,main=主標題",sub="副標題",type="p",xlim=c(7,20),ylim=c(20,100),axes=F)




    其他繪圖參數:

    參數

    功能

    adj

    控制關于文字對齊方式

    bg

    背景色

    bty

    圖形邊框形狀

    cex

    符號和文字大小,cex.axis,cex.lab,cex.main,cex.sub

    col

    顏色,col.axis,col.lab,col.main,col.sub

    font

    文字字體,font.axis,font.lab,font.main,font.sub

    las

    坐標軸刻度數字標記方向

    lty

    線條樣式,1:實線;2:虛線;3:點線;4:點虛線;5:長虛線

    lwd

    線的寬度

    mar

    圖形邊空的大小

    mfcol
    mfrow

    c(nr,nc)的向量,前者按列分隔繪圖窗口,后者按行分隔繪圖窗口

    pch

    繪圖符號的類型

    ps

    文字大小

    pty

    繪圖區域類型

    tck

    軸刻度長度,tck=1時,則繪制grid

    xaxt
    yaxt

    如果xaxt=“n”,設置x軸不顯示,如果yaxt=“n”,設置y軸不顯示




    3.畫圖面板
    par:設置全局繪圖參數的函數。
    ask:par(ask=TRUE),產生新的繪圖之前提示操作。
    new:FALSE:默認,新圖在下一個 figure region 生成;TRUE:新圖在當前 figure region
    mfcol:mfcol=c(3,2):3 行 2 列分割圖形界面。
    mfrow:以行的方式分割圖形界面。
    mfg:mfg=c(2,2,3,2):
    圖片在 3 行 2 列圖形界面中第二行,第二列的位置。
    示例:

    mmexport1607324748777.jpg

    畫圖面板的參數:

    示例:

    mar=c(a,b,c,d):設置 plot region 與 figure region 底部、左邊、上部、右邊的距離,單位英寸。
    mai=c(a,b,c,d):設置 plot region 與 figure region 底部、左邊、上部、右邊的距離,單位是文本行數。
    mgp=c(a,b,c):三個坐標軸成分的位置,軸文本標記、單位記號標記和軸位置與軸線距離;單位是文本行。

    mmexport1607324753537.jpg




    4.字體

    可以根據數據的多少大小,自己設置需要的字體和字體的大小。

    示例:

    par(mgp=c(1.6,0.6,0),mar=c(3,3,2,1))
    X=1:10;Y=1:10
    cex_type=c(0.7,0.8,0.9,1,2,3,4,5,6,7)
    plot(X,Y,col="blue",pch=16,
    cex=cex_type,   #繪圖符號大小,1是正常大小
    cex.axis=1.1,  #坐標軸刻度數字大小
    cex.lab=1.2,   #坐標軸標簽大小
    cex.main=1.4,    #標題文字大小
    #cex.sub=1.3,   #副標題文字大小
    font.axis=3,  #坐標軸刻度數字字體,斜體
    font.lab=2,   #坐標軸標簽字體,粗體
    font.main=4,   #標題字體,粗斜體
    #font.sub=1,   #副標題字體,正常
    main="字體",
    xlim=c(1,12),ylim=c(1,12))
    text(X,Y,adj=0,labels=paste("cex=",cex_type),col="red",cex=1.2,font=3) 

    mmexport1607324758741.jpg




    5.繪圖符號

    示例:


    R的繪圖符號:pch=1:25

    mmexport1607324763284.jpg

    par(mgp=c(1.6,0.6,0),mar=c(3,3,2,1))

    pch_type=c(1:5,15:19)

    X=1:10;Y=rep(6,10)

    plot(X,Y,col=1,pch=pch_type,cex=2,main="pch",font.lab=2)

    text(X,Y ,adj=-0.5,labels=paste("pch=",pch_type),srt=90)



    6.顏色

    顏色名稱:white, black, red, yellow,…

    colors()

    數字代號:1, 2, 3, 4, 5, 6, 7, 8

    顏色函數:rainbow, heat.colors, terrain.colors, topo.colors, cm.colors, colors()

    mmexport1607324767985.jpg



    7.圖片保存

    輸出到文件

    pdf , postscript , xfig, bitmap, pictex, cairo_pdf, svg, png, jpeg, bmp, tiff
    pdf("plot.pdf",width=4,height=4)
    png("plot.png",width=400,height=600)
    dev.off()  #繪制完圖形后關閉圖形設備
    通過菜單命令保存圖形


    實 踐


    根據上面的繪圖函數和繪圖參數的理解,一般的繪圖步驟為:
    1.打開繪圖窗口,不繪制任何對象
    plot(x, y, type="n", xlab="", ylab="", axes=F)
    2.添加坐標點  points(x,y)
    3.添加坐標軸
    axis(1); axis(at=seq(0.2,1.8,0.2), side=2)
    4.補齊散點圖的邊框  box()
    5.添加標題、副標題、橫軸說明、縱軸說明
    title(main="Main title", sub="subtitle", xlab="x-label", ylab="y-label")



    下面通過實際的數據,繪制簡單的圖片:

    1:散點圖——點線混合圖

    >require(stats)
    >head(cars)
    >plot(cars[,1],cars[,2],pch=16,col="red",xlab="speed",ylab="dist",type="p",font.axis=2,font.lab=2,cex.lab=1.5)
    > x=seq(5,25,by=0.1); y=10*sin(x)+50
    > lines(x,y,col="green",lwd=2)
    > a=5:25; b=2*a+10*cos(a)
    > points(a,b,pch=15,col="blue")
    > legend("topleft",pch=c(16,-1,15),lty=c(-1,1,-1),col=c("red","green","blue"),legend=c("plot
    with point","lines","points"))

    mmexport1607324775264.jpg




    2:散點圖——并列散點圖

    a=read.table(file="clipboard",header=T)

    matplot(a,type="o",pch=15:18,lty=1,bg="yellow",lwd=2,

    xlab="Position(nt)",ylab="Frequency",font=2,font.lab=2,cex.lab=1.5)

    legend("topright",pch=15:18,lty=1,merge=T,legend=names(a),col=1:4)


    mmexport1607324779990.jpg

    3:條形圖——標準條形圖

    > a<-read.table("lengthVSnumber.txt")

    >bar=barplot(a[,2],ylim=c(0,1.2*max(a[,2])),cex.lab=1.5,names.arg=a[,1],xlab="Length(nt)",font.lab=1.5,ylab="Number of small RNAs",space=0.9,col="blue",main="Length distribution")

    >ratio=paste(sprintf("%.2f",a[,2]/sum(a[,2])*100),"%",sep="")

    >text(bar,a[,2],labels=ratio,adj=c(0.5,0),cex=0.8,font=2,pos=3)

    > abline(h=axTicks(2),lty=2,col=rgb(0,0,0,0.5));

    > box()

    mmexport1607324784484.jpg





    4:條形圖——堆積條形圖

    數據:

    mmexport1607324792037.jpg

    h =read.table(“acgt.txt”,head=T)

    barplot(t(as.matrix(h)),ylim=c(0,1),xlab="Position",

    ylab="Frequency",main="Homo sapiens ",

    col=rainbow(4),font=2,cex.lab=1.4)

    box()

    legend("topright",legend=c("A","G","C","T"),

    pch=15,col=rainbow(4))

    mmexport1607324796729.jpg

    總結

    R語言的繪圖,需要層層漸進的學習,只有學習了了基礎的繪圖函數和參數,才能在其基礎上繪制出更漂亮更生動的圖片,讓您的論文眼前一亮!

    mmexport1607324801586.jpg

    最近瀏覽:

    北京青蓮百奧生物科技有限公司

    固話:010-53395839
    郵箱:service@qinglianbio.com
    地址:北京市昌平區北清路生命科學園博雅CC C座1號樓807


    掃一掃,關注我們
    久久加99裸体艺术照_国语精品一区二区三区_亚洲色,图偷,拍自、拍_97超碰色目目