R语言图形base系统(一)

时间:2023-03-09 22:15:15
R语言图形base系统(一)
       一般R作图有三大绘图系统:base系统、ggplot2绘图系统、lattice绘图系统。
       本篇主要介绍base系统绘图时的图形参数。一般用plot()函数来完成。在R中,若画的图不止一副,执行plot语句时会自动覆盖前一副,如何才能创建多个图形呢?可以在作图之前添加:dev.new()。
        下面通过几个图例来介绍图形参数。
dose <- c(20,30,40,45,60)
dragA <- c(16,20,27,40,60)
dragB <- c(15,18,25,31,40)
①plot(dose, dragA, type = "b")   #(默认lty=1,pch=1)(type = "b"表示同时绘制点和线)
其中pch表示点符号,具体见下图:
lty表示线条类型,具体见下图:

附上令外两个效果图:
 ②plot(dose, dragA, type = "b",lty=2,pch=17)

③plot(dose, dragA, type = "b",lty=3,pch=15,lwd=3,cex=2)

④plot(dose, dragA,
type = "b",lty=6,pch=23,col="blue",bg="green")

④plot(dose, dragA, type =
"b",lty=6,pch=23,col="blue",fg="green")

⑤plot(dose, dragA, type = "b",lty=2,pch=2,lwd=2,

     
main="Clinical Trials for Drag A",   #标题
     
sub="This is hypothetical data",  
   #副标题
      xlab
= "Dosage",ylab = "Drag Response",  
 #坐标轴标签
      xlim
= c(0,60),ylim = c(0,70))    
#坐标轴范围
⑥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 = 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 = "DrugA VS DrugB",

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")
   
 #y为30的地方添加水平直线
 library(Hmisc)
 minor.tick(nx=3,ny=3,tick.ratio=0.5)
     
 #添加次要刻度线,此句表示在XY轴每两条主刻度线之间添加3条次刻度线,并且次要刻度线的长度将是主刻度线长度的一半。

legend("topleft",inset=.05,title ="Drug Type",c("A","B"),
    #图例
        lty=c(1,2),pch = c(15,17),col=c("red","blue"))

par(opar)

 本篇内容摘自《R语言实战》第三章:图形初阶