R基础绘图

2020-01-03  本文已影响0人  柳叶刀刀

逐步绘图

R内置的基本绘图包graohics绘图逻辑:打开一个绘图板,制定绘图区,逐步添加各种图形元素。
以下为例:

# Scatterplot
x <- c(0.5, 2, 4, 8, 12, 16)
y1 <- c(1, 1.3, 1.9, 3.4, 3.9, 4.8)
y2 <- c(4, .8, .5, .45, .4, .3)

# 开始绘图
plot.new()    #要绘制一个新的plot
plot.window(range(x), c(0, 6))  #要绘制的plot的范围
lines(x, y1)
lines(x, y2)
points(x, y1, pch=16, cex=2)  #绘制点,pch,cex等为点的属性,大小形状
points(x, y2, pch=21, bg="white", cex=2)
axis(1, at=seq(0, 16, 4))    #绘制底部坐标轴,以及坐标轴上的断点
axis(2, at=seq(0, 6, 2))     #绘制左边坐标轴
axis(4, at=seq(0, 6, 2))     #绘制右边坐标轴
mtext("Travel Time (s)", side=1, line=2, cex=0.8)
mtext("Responses per Travel", side=2, line=2, las=0, cex=0.8)
mtext("Responses per Second", side=4, line=2, las=0, cex=0.8)
text(4, 5, "Bird 131")

其中
plot.new() #新建一个绘图
plot.window() #位置设定,实际上也是设置了坐标系。
接下来的 points, lines, axis,mtext, text 都是往这个图形上添加元素。

高级/低级绘图函数

graphics的绘图函数可以分为两类,一种是低级绘图函数,这类函数用于往已经存在的plot上添加元素,如上图中points,lines,axis等,都是往已经存在的图形上添加 底层的图像元素,每个图形元素可以设置自己的属性,如points()中可以设置点的形状大小等。这些函数也可以成为图形元素函数。
另一类图像函数是高级绘图函数,如boxplot, 使用这类函数时传入正确的数据会绘制特定的图形,高级函数会重新打开一个空白绘图板并绘图。
用高级函数绘图后,也可以使用低级绘图函数进一步添加其他图形元素。

boxplot(pressure$temperature) #高级绘图函数
text(1,200,'test') #低级绘图函数往已有图形上添加图形元素

par参数

除了上述绘制的图形外,往往还需要修改很多其他默认设置,如图形边距,前景色,默认字体大小等。或者这些可成称之为图形主题。
par() #返回图形的默认设置,有72个参数可以设置。
par(mar= ,font= ) #可以更改默认的mar,font选项,类似,默认的参数均可这样修改。
通过par更改是全局更改,如果在text(font= )等也设置了font可以认为是局部设置。

box(canvas),figure,plot概念

canvas是整个绘图纸张,如一张A4纸
figure是一张组合图,一张图可以包括一个或者多个plot
plot值具体的某个图。


image.png image.png

理解这些概念,是图形组合的基础。

图形组合

par中可以设置绘制图形组合

par(mfrow=c(2,1),mar=c(4,4,4,4))

绘图设备

图形可视化需要底层支持,如绘制一个pdf/tiff, 后台要先准备好绘制pdf/tiff的工具,这个准备好的pdf/tiff后台支持,就是所谓的device。就好像你是个画家,你需要画油画,那么你的仆人会先给你准备好画油画用的布板等,你需要画简笔画,仆人就简单给你准备个普通写字台和A4纸张。
pdf('r-plot.pdf') #打开一个pdf绘图设备,并设置为当前设备。注意,该设备是不可见的,非交互的,此后的图形元素都是在这个图形设备上绘图的。
...
dev.off() #关闭当前绘图设备。绘制完毕后,需关闭当前设备。可以这样理解:绘图是在内存ram绘图的,结束后需要将内存数据保存到硬盘上,然后才能在当前文件下找到图r-plot.pdf。

默认的绘图设备
Rstudio, Rgui默认激活了一个可视化的,交互的绘图设备,默认编号是1,可以认为是常开的,交互的,也就是默认Rstudio右下角的plot区域图形。

上一篇下一篇

猜你喜欢

热点阅读