• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

R语言学习(三)图形初阶

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

(一)使用图形

> attach(mtcars)
> plot(wt,mpg)
> abline(lm(mpg~wt))
> title("Regression of MPG On Weight")
> detach(mtcars)

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")     ;;b表示同时绘制点和线

 (二)图形参数

opar <- par(no.readonly=TRUE)    ;;复制了当前图形参数设置
par(lty=2,pch=17)                ;;将默认线条类型改为虚线(lty=2)默认点符号改成实心三角(pch=17)
plot(dose,drugA,type="b")        ;;绘图
par(opar)                        ;;还原了原始设置


以上命令等价于 :
plot(dose,drugA,type="b",lty=2,pch=17)

 

 

 

 

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

 

(三) 颜色

颜色的指定可以通过颜色下标、颜色名称

十六进制的颜色,RGB值或HSV来指定颜色

 

col=1
col="white"
col = "#FFFFFF"
col = rgb(1,1,1)
col = hsv(0,1,1)

都是表示白色的方式

colors()可以返回所有颜色的名称

(四)文本属性

(五)图形的边界和尺寸 

 

par(pin <- c(4,3),mai=c(1,.5,1,.2))

;;生成一副4英寸宽,3英寸高,上下边界为1,作边界为0.4,右边界为0.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(pin=c(2,3))                                 ;;设定两英寸宽,3英寸长
par(lwd=2,cex=1.5)                              ;;线宽默认值的两倍,符号为默认的1.5倍
par(cex.axis=.75,font.axis=3)
plot(dose,drugA,type="b",pch=19,lty=2,col="red")            ;;19号点,2号线,颜色为红色
plot(dose,drugA,type="b",pch=23,lty=6,col="blue",bg="green");;图形背景色为绿色

par(opar)

 

 (六) 添加文本、自定义坐标轴和图例

plot(dose,drugA,type="b",
  col="red",lty=2,pch=2,lwd=2,
  main="Clinical Trials for Drug A",     标题
  sub ="This is hypothetical data",      副标题
  xlab = "Dosage",ylab ="Drug Response",
  xlim=c(0, 60),ylim=c(0, 70))

也可以使用title()函数为图形添加标题和坐标轴标签:

 

title(main="My Title",col.main="red",
      sub="My Subtitle",col.sub="blue",
      xlab="My X label",ylab="My Y label",
      col.lab="green",cex.lab=0.75)

对于坐标轴,可以使用axis()来创建自定义的坐标轴,而非使用R的默认坐标轴:

axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,……)

 

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)                    ;;yaxt禁用Y轴的框架、ann禁用默认的标题和坐标轴标签。如果加了axe=FALSE将禁用所有坐标轴,包括坐标轴框架线
lines (x,z,type="b",pch=22,col="blue",lty=2)
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=.7,tck=-.01)
mtext("y=1/x",side=4,line=3,cex.lab=1,las=2,col="blue")       ;;在图形边界添加文本
title("An Example Of Creative Axes ",xlab = "X Values",ylab = "Y=x")
par(opar)

(七) 参考线

abline(h=yvalues,v=xvalues)


abline(h=c(1,5,7))
abline(v=sep(1,10,2),lty=2,col="blue")

(八)图例

legend(location,tilte,legend,……)

更多的选项可以通过help(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)
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 Response")
lines(dose,drugB,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)   
;;nx和ny分别是X和Y轴主刻度间分为几个区间,tick. ratio是相对于主刻度的大小
legend("topleft",inset=0.05,title="Drug Type",c("A","B"),lty=c(1,2),pch=c(15,17),col=c("red","blue"))

用相同命令在R上画的就很正常,在RStudio就比例失调了…… 

 

(九) 文本标注

text(location,"text to pace",pos,……)
;;在绘图区域内加文本
text("text to place",side,line=n,……)
;;在四个边界之一添加文本

 

attach(mtcars)
plot(wt,mpg,
     main="Mileage vs. Car Weight",
     xlab="Weight",ylab="Milage",
     pch=18,col="blue")
text(wt,mpg,
     rownames(mtcars),
     cex=0.6,pos=4,col="red")

 

(十)图形的组合 

在par()函数内,可以使用mfrow=c(nrows,ncols)按行填充行数为nrows,列数为ncols的图形矩阵
可以用mfcol=c(grows,ncols)按列填充矩阵


attach(mtcars)
opar <- par(no.readonly = TRUE)
par(mfrow=c(2,2),pin=c(3.35,2.27))
plot(wt,mpg,main="Scatterplot pf wt vs. mpg")
plot(wt,disp,main="Scatterplot of wt vs. disp")
boxplot(wt,main="Boxplot of wt")
hist(wt,main="Histogram of wt")
par(opar)
detach(mtcars)

attach(mtcars)
opar <- par(no.readonly = TRUE)
par(mfrow=c(3,1))
hist(wt)
hist(mpg)
hist(disp)
par(opar)
detach(mtcars)


;;可以通过main=“”来禁用标题,或者ann=FALSE来禁用所有标题和标签

 

 还有一个超好用的layout( )函数

attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow=TRUE))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)

还可以通过widths和heights两个向量来调节各行各列的大小

attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow = TRUE),
       widths = c(3,1),heights=c(1,2))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)

 (十)图形布局的精细控制

opar <- par(no.readonly=TRUE)
par(fig=c(0,0.8,0,0.8))
attach(mtcars)
plot(wt,mpg,
     xlab="Miles,Per Gallon",
     ylab="Car Weight")
par(fig=c(0,0.8,0.55,1),new=TRUE)
boxplot(wt,horizontal=TRUE,axes=FALSE)
par(fig=c(0.65,1,0,0.8),new=TRUE)
boxplot(mpg,axes=FALSE)
mtext("Enhanced Scatterplot",side=3,outer=TRUE,line=-3)
par(opar)

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【数据分析 R语言实战】学习笔记 第七章 假设检验及R实现发布时间:2022-07-18
下一篇:
R语言包的安装发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap