美文网首页
2021-04-17 R 图形初阶

2021-04-17 R 图形初阶

作者: 学习生信的小兔子 | 来源:发表于2021-04-17 21:01 被阅读0次

    R语言--图形初阶

    第一个例子

    dev.off()
    pdf('my_firstgraph')
    attach(mtcars)
    plot(wt,mpg) #plot后面第一个参数是横坐标
    abline(lm(mpg~wt))
    title('Regression of MPG on Weight')
    detach(mtacrs)
    
    image-20210417081643587

    第二个例子

    rm(list=ls())
    dose  <- c(20, 30, 40, 45, 60)
    drugA <- c(16, 20, 27, 40, 60)
    drugB <- c(15, 18, 25, 31, 40)
    par(mfrow=c(1,2))
    plot(dose,drugA)
    title("relations between dose and drug")
    plot(dose,drugA,type='b')
    lines(dose,drugB,type='b')#再添加一条线
    title("relations between dose and drug")
    

    图形参数

    method

    #方法一
    rm(list=ls())
    dose  <- c(20, 30, 40, 45, 60)
    drugA <- c(16, 20, 27, 40, 60)
    drugB <- c(15, 18, 25, 31, 40)
    opar <- par(no.readonly = T)
    par(lty=2,pch=17)  #lty改变线类型 pch改变符号类型
    plot(dose,drugA,type='b')
    par(opar)
    #方法二
    plot(dose,drugA,type='b',lyt=3,pch=20)
    

    符号参数

                                                               指定符号和线条类型的参数 P48
    
    参数 描述
    pch 改变符号类型
    cex 指定符号的大小
    lty 指定线条的类型 1~6
    lwd 指定线条的宽度 #默认为1
    par(mfrow=c(1,3))
    plot(dose,drugA,type='b',lyt=3,pch=20,cex=1.5,lwd=4)
    plot(dose,drugA,type='b',lyt=3,pch=20,cex=0.5,lwd=2)
    plot(dose,drugA,type='b',lyt=3,pch=20,cex=0.85,lwd=2.5)
    
    image-20210417095525432

    颜色

    col  默认的绘图颜色(就是图形颜色,比如上面的符号与线条)
    col.axis  坐标轴刻度文字的颜色(一般就是那些数字)
    col.lab   坐标轴标题的颜色
    col.main  标题颜色
    col.sub   副标题颜色
    fg  图形前景色(轴和框的颜色)
    bg  图形背景色
    
    #可以直接用基本颜色英文表示,也支持十六进制,RGB等等
    col="red"
    colors()    #可返回所有可用颜色的名称,下面的网站可以查看具体所对应的颜色
    # http://www.docin.com/p-1491680339.html
    rainbow(3)    #可以返回指定数目的“彩虹型”颜色
    #[1] "#FF0000FF" "#00FF00FF" "#0000FFFF"
    #R包RColorBrewer可以创建出吸引人的颜色配对
    library(RColorBrewer)
    mycolors <- brewer.pal(5, "Set1")  #从Set1中抽取5中颜色
    barplot(rep(1,10), col=mycolors)  #循环重复
    
    image-20210417100941239

    文本参数

    文本大小参数

    cex.axis 为数值,表倍数
    cex.lab
    cex.main
    cex.sub
    
    #### 字体参数
    
    font.axis 1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体
    font.lab
    font.main
    font.sub
    

    尺寸

    pin 以英寸表示的图形尺寸,宽和高
    mai 表图的四周的宽大小,顺序为下,左,上,右;单位为英寸
    mar 同上,单位为英分。1英分=1/12英寸=0.21厘米
    

    终合实例

    opar <- par(no.readonly = T)
    par(pin=c(2,3))
    par(lwd=2,cex=1.5)
    par(cex.axis=0.75,font.axis=2)
    par(mfrow=c(1,2))
    plot(dose,drugA,type='b',pch=0,lty=2,col='red',bg='blue',fg='green')
    plot(dose,drugA,type='b',pch=23,lty=6,col='red',bg='blue',fg='yellow')
    par(opar)
    
    image-20210417103517579

    添加文本、自定义坐标轴和图例

    par(pin=c(3,3))
    plot(dose,drugA,type='b',
         col='red',lwd=2,lty=2,pch=2,
         main='Clinical Trials for Drug A',col.main='red',
         sub = 'This is hypothetical data',col.sub='green',
         xlab='Dosage',ylab='Drug Reponse',col.lab='blue',
         xlim = c(0,60),ylim=c(0,70)) 
    
    image-20210417105258546
    #添加标题
    #title()函数
    title(main="主标题",sub="副标题",xlab="x轴标题",ylab="y轴标题")
    #同时可以参考上述参数进行细节修改
    #添加次要刻度线
    library(Hmisc)
    minor.tick(nx=2,ny=3,tick.ratio=0.5)
    #意为在x轴的的每两条主刻度线间添加一条次要刻度线(分成2段)
    #y添加两条,分成3段。大小为主刻度的0.5倍。
    添加参考线
    abline(h=c(1,5,7))     #添加水平参考线
    abline(v=c(2,5),lty=2,col="blue")  #添加蓝色的垂直虚线
    ##添加图例
    opar <- par(no.readonly = TRUE)
    par(lwd=2,cex=1.5,font.lab=2)
    plot(dose,drugA,type='b',
         pch=15,lty=1,col='red',ylim=c(0,60),
         main='Drug A vs Drug B',
         xlab = 'Drug Dosage',ylab='Drug Response'
        )
    lines(dose,drugB,type='b',
          pch=17,lty=2,col='blue')
    abline(h=c(30),lwd=1.5,lty=2,col='gray')
    legend("topleft",inset=.02,
                  title = "Drug Type",  
                  c("A","B"),cex=0.7,bty="n", lty = c(2,6),pch = c(19,23),col=c("red","blue"),text.width=0.5
           ) #去掉边框bty="n"   #调整图例大小cex=0.7
    par(opar)
    
    image image-20210417114339723

    文本标注

    通过函数text()和mtext()将文本添加到图形上

    text()向绘图区域内部添加文本

    mtext()向图形的四个边界之一添加文本

                                                      函数text()和mtext()的选项
    
    选项 描述
    location 文本的位置参数
    pos 文本相对于未知参数的方位
    side 指定用来放置文本的边 1=下,2=左,3=上,4=右
    attach(mtcars)
    colnames(mtcars)
    plot(wt,mpg,
         main='Mileage vs. Car Weight',
         xlab = 'Weight',ylab = 'Mileage',
         pch=16,col='blue')
    text(wt,mpg,
         row.names(mtcars),
         cex = 0.6,pos=4,col ='red')
    detach(mtcars)
    
    image-20210417203702726

    多幅图显示在一起/拼图

    #mfrow=c() 函数,默认 mfrow=c(1,1)
    opar <- par(no.readonly=TRUE)
    par(mfrow=c(2,3)) #按行填充,行数为2,列数为3的图形矩阵
    par(mfcol=c(2,3)) #按列填充
    #layout() 函数,可以设置“品”字形的图形矩阵
    layout(matrix(c(1,1,2,3),2,2,byrow=TRUE),widths=c(3,1),heights=c(1,2))  
    par(opar)
    #第一幅图被置于第一行,另两幅图被放在第二行。
    #第一行图形高度是第二行的1/2,右下图宽度是左下宽度的1/3
    

    图形布局的精细调整

    opar <- par(no.readonly=TRUE)
    par(fig=c(0,0.8,0,0.8))
    plot(mtcars$wt,mtcars$mpg,col='blue',
         xlab="Miles Per Gallon",
         ylab="Car Weight",col.lab='red')
    par(fig=c(0,0.8,0.55,1),new=TRUE)
    # new=TRUE 很关键的参数,表示在原有图上加图
    hist(mtcars$wt,main = "",xlab = "",col='green',col.lab='yellow',labels = T,ylim=c(0, 10)) 
    par(fig=c(0.55,1,0,0.8),new=TRUE)
    boxplot(mtcars$mpg,axes=F,col = 'orange')
    mtext("Enhanced Scatterplot",side=3,outer = TRUE,line=-3,col='red')
    par(opar)
    dev.off()
    
    image-20210417205748430

    本文参考:https://www.jianshu.com/p/89692f3b558c 侵删~

    相关文章

      网友评论

          本文标题:2021-04-17 R 图形初阶

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