学习视频 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))
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")
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)
lines函数 在已生成图形基础上 再加一条线
-
#再画一条线
-
lines(x,z,type=
"b",pch=
21,lty=
4,col=
"green")
-
#给右边添加一个刻度显示xz函数关系
-
axis(
4,at=z,labels=rz,col.axis='green')
次要刻度线 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)
图例 legend
-
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)
转载:https://blog.csdn.net/cclovezbf/article/details/115556315