R 图形初步

# 图形创建

    pdf("mygraph.pdf")
      attach(mtcars)
      plot(wt,mpg)
      abline(lm(mpg~wt))
      title("Regression of mpg on weight")
      detach(mtcars)
  
    #说明: pdf("mygraph.pdf")  为保存开启文件,dev.off()关闭文件操作的设备
    #说明: 除了PDF外还有 : png(),jpeg(),bmp(),tiff(),xfig(),postscript(),win.metafile() ,用法和pdf一样
    #说明: abline(lm(mpg~wt)) 绘制最优拟合曲线
    
      dose<-c(20,30,40,45,60)
      drugA<-c(16,20,27,40,60)
      drugB<-c(15,18,25,31,40)
      plot(dose,drugA,type="b")
      
    
    # 修改图形参数
      opar <-par(no.readonly=TRUE)  #复制一份图形参数设置
      par(lty=2,pch=17)             #将线条类型换成 虚线 ,并将点改成实心三角型
      plot(dose,drugA,type="b")
      par(opar)                     #应用新图形参数
      #说明:图形参数的修改 可以直接在图形绘制函数中制定对应参数:  plot(dose,drugA,type="b",lty=2,pch=17)
    
    #图形参数
      #符号和线条
        #pch--->绘制点适用的符号
        #cex--->指定符号大小
        #lty--->指定线条类型
        #lwd--->指定线条宽度
      #颜色
        #col--->默认的绘图颜色
        #col.axis--->坐标zhu刻度文字的颜色
        #col.lab--->坐标住标签的颜色
        #col.main--->标题颜色
        #col.sub--->副标题颜色
        #fg--->图形的前景色
        #bg--->图形的背景色
        #颜色函数:rainbow(),heat.colors(),terrain.colors(),topo.colors(),cm.colors()
        n<-10
        mycolors<-rainbow(n)
        pie(rep(1,n),labels=mycolors,col=mycolors)
        mygrays<-gray(0:n/n)
        pie(rep(1,n),labels=mygrays,col=mygrays)
    
      #文本属性
        #cex--->默认文本属性,默认为1,1.5表示放到原来的1.5倍
        #cex.axis --->坐标刻度文字缩放倍数
        #cex.lab--->坐标住标签的缩放倍数
        #cex.main--->标题的缩放倍数
        #cex.sub--->副标题的缩放倍数
    
        #font--->字体样式,1 常规2粗体3斜体4粗斜体
        #font.axis --->坐标刻度文字缩放倍数
        #font.lab--->坐标住标签的缩放倍数
        #font.main--->标题的缩放倍数
        #font.sub--->副标题的缩放倍数        
        #ps--->字体磅值。字体最终大小: ps*cex
      #图形尺寸
        #pin--->英寸,表示图片尺寸:宽和高
        #mai--->以数值向量表示边界大小,单位英分;顺序:下左上右
        #mar--->以数值向量表示边界大小,单位英寸;顺序:下左上右
        
        opar <-par(no.readonly=TRUE)
        par(pin=c(2,3))           
        par(lwd=2,cex=1.5)           
        par(cex.axis=.75,font.axis=3)           
        plot(dose,drugA,type="b",pch=19,lty=2,col="red")
        plot(dose,drugA,type="b",pch=23,lty=6,col="blue",bg="green")
        par(opar)                   
    
# 图形保存
    #dev.off() 保存图片
    
# 图形标注和标题
    #标题
        #title(main="main title",sub="sub-title",xlab="x-axis label",ylab="y-axis label")
        #title函数可指定其他图形参数
    #坐标轴
        #axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,...)
          #side--->表示在那边绘制坐标轴(1下2左3上4右
          #at--->表示需要绘制刻度线的位置
          #labels--->字符向量,表示刻度线旁的文字
          #pos--->刻度线绘制的位置
          #lty--->线条类型
          #col--->线条和刻度线颜色
          #las--->标签是否平行于坐标轴(0平行,2垂直)
          #tck--->刻度线的长度
      #example
      x<-c(1:10)
      y<-x
      z<-10/x                                             #生成数据
      opar<-par(no.readonly=TRUE)
      par(mar=c(5,4,4,8)+0.1)                             #增加边界大小
      
      plot(x,y,type="b",pch=21,col="red",yaxt="n",lty=3,ann=FALSE)  #绘制x对y的图形
      
      lines(x,z,type="b",pch=22,col="blue",lty=2)                   #添加x对1/x的直线
      
      axis(2,at=x,labels=x,col.axis="red",las=2)                    #绘制自己坐标轴
      axis(4,at=z,labels=round(z,digits=2),col.axis="blue",las=2,cex.axis=0.7,tck=-.01)

      mtext("y=1/x",side=4,line=3,cex.lab=1,las=2,col="blue")       #添加标题和文本
      title("An Example",xlab="X values",ylab="Y=X")
      par(opar)
  #图例
    #legend(location,title,legend,...)
      #location--->图例位置:bottom,bottomleft,left,topleft,top,topright,right,bottomright,center
      #title--->图例标题
      #legend--->字符向量
    #example
      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 dosage")
      lines(dose,drugA,type="b",pch=17,lty=2,col="blue")
      abline(h=c(30),lwd=1.5,lty=2,col="gray")                  #添加次要刻度线
      library(Hmisc)
      minor.tick(nx=3,ny=3,tick.ratio=0.5)
      legend("topleft",inset=.05,title="drug type",c("A","B"),lty=c(1,2),pch=c(15,17),col=c("red","blue"))  #添加图例
      par(opar)
    
    #文本标注
    #text(location,"text to place",pos,...)   --- 可包含其他图形参数
    #mtext("text to place",side,line=n, ...)
      #location--->文本的位置参数(可以为x,y)
      #pos--->文本相对与location的方位(1下,2左,3上,4右)
      #side--->指定用来放文本的边(1下,2左,3上,4右)
      
      opar<-par(no.readonly=TRUE)
      par(cex=1.5)
      plot(1:7,1:7,type="n")
      text(3,3,"example of default text")
      text(4,4,family="mono","example of mono-spaced text")
      text(5,5,family="serif","example of serif text")
      par(opar)
    
    #数学标注
      #plotmath
# 多图形组合
    #函数 par 和  layout 可以完成图形组合
    #par函数通过设定mfrow参数来指定行列 mfrow=c(nrows,ncols)
    attach(mtcars)
    opar<-par(no.readonly=TRUE)
    par(mfrow=c(3,1))
    hist(wt)
    hist(mpg)
    hist(disp)
    par(opar)
    detach(mtcars)
    dev.off()      
    

你可能感兴趣的:(R 图形初步)