学习视频 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)
plot(dose,druga,type = "b") -- type="b" 代表有点和线
plot(dose,druga,type = "c") -- 只有线没有点
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这种
> 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-语言做图图形的尺寸和大小
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))
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")
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)
#再画一条线
lines(x,z,type="b",pch=21,lty=4,col="green")
#给右边添加一个刻度显示xz函数关系
axis(4,at=z,labels=rz,col.axis='green')
##安装包
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)
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)
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") )
对点进行标记text() mtext()
#标记
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")
---------------------------------------------
终极汇合作图
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)