R语言-画图

学习视频 https://www.bilibili.com/video/BV157411F7ZV?p=15&spm_id_from=pageDriver

plot函数

dose <- c(20,30,40,45,60)
druga <- c(16,20,27,40,60)
drugb <- c(15,18,25,31,40)
plot(dose,druga)

R语言-画图_第1张图片

plot(dose,druga,type = "b") -- type="b" 代表有点和线 

R语言-画图_第2张图片

plot(dose,druga,type = "c") -- 只有线没有点

R语言-画图_第3张图片

dose <- c(20,30,40,45,60)
druga <- c(16,20,27,40,60)
drugb <- c(15,18,25,31,40)
plot(dose,druga)
plot(dose,druga,type = "b") ## type="b" 代表有点和线 
opar <- par(no.readonly = TRUE)  ##代表图形是可以修改的图像
par(lty=2, pch=17) ##lty=2代表虚线,pch=17代表转点为三角形  这个par是一个类似于设定画图环境变量的工具,你设定好 长度类型,颜色,后面用其他画图函数 一般都会有默认的这些参数,你用par设定了就会用par的设定
plot(dose,druga,type = "b") ##再次打印
par(opar)  ## 还不知道啥意思。。。
plot(dose,druga,lty=2,pch=19,col='green',main = "这是主标题",type='b',cex=1.5,lwd=2,col.axis='red',fg='grey',bg='black')

par函数是可以指定画图形式的。也可以在plot函数里指定画图格式

备注 colors()可以显示颜色类型。颜色也可以rgb(1,2,3) 用0FFFF123这种

R语言-画图_第4张图片R语言-画图_第5张图片R语言-画图_第6张图片

> names(pdfFonts())
 [1] "serif"                "sans"                 "mono"                 "AvantGarde"           "Bookman"             
 [6] "Courier"              "Helvetica"            "Helvetica-Narrow"     "NewCenturySchoolbook" "Palatino"            
[11] "Times"                "URWGothic"            "URWBookman"           "NimbusMon"            "NimbusSan"           
[16] "URWHelvetica"         "NimbusSanCond"        "CenturySch"           "URWPalladio"          "NimbusRom"           
[21] "URWTimes"             "ArialMT"              "Japan1"               "Japan1HeiMin"         "Japan1GothicBBB"     
[26] "Japan1Ryumin"         "Korea1"               "Korea1deb"            "CNS1"                 "GB1" 

 

R-语言做图图形的尺寸和大小

R语言-画图_第7张图片
 

dose <- c(20,30,40,45,60)
druga <- c(16,20,27,40,60)
drugb <- c(15,18,25,31,40)

plot(dose,druga,lty=2,pch=19,col='green',type='b',cex=1.5,lwd=2,col.axis='red',fg='grey',bg='black',main = "这是主标题",sub="副标题",xlab="病人年纪",ylab="药物剂量",xlim=c(0,100),ylim=c(0,100))

R语言-画图_第8张图片

title函数-修改标题

plot(dose,druga,lty=2,pch=19,col='green',type='b',cex=1.5,lwd=2,col.axis='red',fg='grey',bg='black',main = "这是主标题",sub="副标题",xlab="病人年纪",ylab="药物剂量",xlim=c(0,100),ylim=c(0,100))
title(main = "title",col.main="red") ##给图形加个title 如果图形本身有会重叠
title(sub="sub title",col.sub="gold")

R语言-画图_第9张图片

axis()绘制坐标轴

x=c(1:10)
y=x
z=10/x
rz=round(z,digits = 2)
ypart=c(1:5)
yname=c("一","二","三","四","五","六","七","八","九","十")
ynamepart=yname[1:5]
opar=par(no.readonly = TRUE)
par=(mar=c(5,4,4,8)+0.1)
#yaxt 禁止在y轴上做出刻度 ann=FALSE代表在xy轴去掉说明(原先是xy)
plot(x,y,type='b',pch=25,,lty=4,col="red",yaxt="n",ann=FALSE) 
# 2代表左边 at代表需要绘制的位置 labels绘制的刻度的字符描述如果为null直接用at  las=2 垂直
axis(2,at=ypart,labels=ynamepart,col.axis="red",las=2)

R语言-画图_第10张图片

lines函数 在已生成图形基础上 再加一条线

#再画一条线
lines(x,z,type="b",pch=21,lty=4,col="green")
#给右边添加一个刻度显示xz函数关系
axis(4,at=z,labels=rz,col.axis='green')

R语言-画图_第11张图片

 

次要刻度线 minor.tick()

##安装包

install.packages("Hmisc")

##导入包

library(Hmisc)

注意!!!可能会出错,大概意思就是Hmisc的版本太高,R的版本低了,此时需要更新R 。通过version命令查看R版本

install.packages("installr")

library(installr)

updateR() ##注意这一步的时候会提示你要在R上直接运行,不要再RGUi也就是Rstudio里。我是R里运行。。。。

更新完后再导入Hmisc

plot(1:4,1:4,type='b')
#次刻度线 nx=2把x上主要刻度线分成2份 tick.ratio次要刻度线相比主要刻度线长度的比值
minor.tick(nx=3,ny=2,tick.ratio = 0.5)

参考线 abline()

plot(1:4,1:4,type='b')
#次刻度线 nx=2把x上主要刻度线分成2份 tick.ratio次要刻度线相比主要刻度线长度的比值
minor.tick(nx=3,ny=2,tick.ratio = 0.5)
#ab参考线和line一样在原图上新增, h代表水平的一条线  v代表垂直的一条线
abline(h=2,v=2,col="red",lty=2)

R语言-画图_第12张图片

图例 legend

R语言-画图_第13张图片

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,lty=3,pin=c(3,2),mai=c(1.2,1.2,1,.5))
plot(dose,druga,type="b",xlab = "计量",ylab = "药物反应",xlim =c(10,70),ylim=c(10,60),main = "计量与药物A,B关系图",col="red",pch=15) 
lines(dose,drugb,type="b",lty=3,pch=21,col="grey")
#次刻度线 nx=2把x上主要刻度线分成2份 tick.ratio次要刻度线相比主要刻度线长度的比值
minor.tick(nx=4,ny=2,tick.ratio = 0.5)
#ab参考线和line一样在原图上新增, h代表水平的一条线  v代表垂直的一条线
abline(h=27,v=40,col="blue",lty=2)
#批注
##center,bottom,top bottomleft ,inset图例的边框距离边界的距离值,legend
legend("bottomleft",title = "a,b",inset =0.05,legend =c('A','B'),pch = c(15,21),lty=c(3,3),col = c("red","grey") )

R语言-画图_第14张图片

对点进行标记text() mtext()

R语言-画图_第15张图片

#标记
attach(mtcars);
head(mtcars);
plot(wt,mpg,main = "车重和耗油关系",xlab = "车重",ylab = "耗油",lty=3,pch=18)
#wt是横坐标 mpg是纵坐标 rownames是点的名称, cex 字体放小点,pos=4在点右边
text(wt,mpg,rownames(mtcars),cex=0.5,pos = 4,col="red")

R语言-画图_第16张图片

 

---------------------------------------------

终极汇合作图

note <- c("年幼多金",rep("少年得志",2),rep("青年无忧",2),rep("中年潦倒",2),rep("老年穷苦",3))
age <- seq(from=0,to=100,by=10)[1:10]
weight <- c(1:10)^2
iq <- seq(from = 100,to = 1,by = -10)[1:10]
money <- round(1000/age,digits = 2)
##mai调整图的边界 ,cex调整 所有比例大小,也可以调整部分,暂时不太清楚。。。。
opar <- par(mai=c(1,.8,1,.8),cex=0.7)
### yaxt 禁止在y轴上做出刻度(不是1234这种可以用自己的计量单位代替) ann=FALSE代表在xy轴去掉说明(原先是age,weight)
plot(age,weight,lty=4,pch=20,type="b",col="red",xlab = "年纪",ylab = "体重")
#增加iq线
lines(age,iq,lty=4,pch=21,type="b",col="green")
#增加age-money线
lines(age,money,lty=4,pch=22,type ="b",col="cyan")
#辅助线  h是水平线  v是垂直线
abline(h=43.5,v=56.2,col="gold",lty=2)
#次刻度线  nx=2把x上主要刻度线分成2份 tick.ratio次要刻度线相比主要刻度线长度的比值
minor.tick(nx=3,ny=2,tick.ratio = 0.4)
#批注标明每条线是代表啥
legend("bottomleft",title = '年纪关系图',title.col='grey',legend = c("weight",'iq','note','money'),col=c("red","green","gold",'cyan'),pch=c(20,21,0,22),lty=c(4,4,2),inset=0.02)
#给图形右边做标记  las=2代表右边刻度标识垂直 col.axis代表刻度说明颜色 col=xx代表刻度和刻度说明都是这颜色
axis(4,at = money,labels = money,col.axis="cyan",las=2,lwd=0.1)
#增加标题
title(main="年纪关系图",sub="体重,钱,智商")
#交点注释。。。。
text(age,money,labels =note ,pos = 4,col="red",cex=0.9)

R语言-画图_第17张图片

 

 

 

 

你可能感兴趣的:(R语言,R,画图,plot)