说来我自己的本科设计就是做可视化相关的工作,虽然看上去很高大上,实际上只是ggplot2包的一个大型说明书而已(苦笑),接下来的若干篇笔记会从头开始整理R中绘图相关的内容,从最简单的图形基础到普通的图形,高级的图形,直到最后的ggplot2拓展包。在我看来,可视化工作是整个统计工作中最重要的一部分,好看的图片往往可以糊弄不少外行人,甚至ggplot2也不是绘图的终点,我们还可以用Adobe公司提供的软件进行后期制作,这些在不在笔记里提及了。
本篇笔记的任务是:整理最基本的图形参数和图形制作方法。
绘图
本篇笔记用用到的简单数据集如下,是一个病人对两种药物的不同剂量的响应。我们预先将其输入到Drug变量中。
直接绘图的核心函数是plot,plot(x,y,type="")是绘图的泛型函数,可以将x放在横轴,y放在纵轴,type决定是点或者是线或者是其它形式。比如我们绘制一个剂量和药剂A的折线图。别忘记先用attach()绑定,省功夫。其结果如图。
plot(Amount,DrugA,"b")
很明显这张图过于苍白,我们需要一些图形参数。
图形参数
符号和线条
下表给出了plot()中可以使用的图形参数
- pch 指定绘制的点的形状
- cex 指定点的形状大小,默认是1。0.5则是原来的一半大小,1.5则是原来的150%大小。
- lty 指定绘制的线条形状
- lwd 指定绘制的线条宽度,默认是1,2则生成两倍宽度,0.5则只有一半宽度。
pch和lty样式表,其中pch中的21-25可以改变边界颜色(col=)和填充颜色(bg=)。
那么我们尝试加入这两个参数。
plot(Amount,DrugA,"b",lty=3,lwd=3,pch=15,cex=1.5)
稍微好了一点点吧。
颜色
下表给出了颜色参数:
- col #默认的绘图颜色,还可以循环使用,比如用col=c(“red”,“blue”)绘制三条线,将会是红蓝红的三条线。
- col.axis; col.lab; col.main; col.sub; #坐标轴刻度文字颜色、坐标轴标签颜色、标题颜色、副标题颜色。
- fg; bg; *前景色、后景色。
在R中,有非常多方法指定颜色,比如col=1,col=“white”,col=“FFFFFF”,col=rgb(1,1,1)都是白色。一般而言后两种比较实用,可以生成不少柔和的颜色,也可以微调。
此外还有其它创建颜色的方法,比如rainbow()可以生成连续的“彩虹型”颜色,不过就个人感受而言,通过col慢慢微调还是比较美观,在微调过程也有不少乐趣,只要不是在赶deadline的话。
文本
文本属性有更为大量的参数
- cex.?? #文本缩放倍数,前文有提及。**??**部分和col类似,去不同的函数时变化的是不同位置的文本。
- font.?? #文本字体样式,1=常规,2=粗体,3=斜体,4=斜粗体,5=自定义的符号字体。同样在后面加不同参数改变不同位置的文本。
- ps #字体磅值,文本的最终大小为ps*cex
整个文字部分中最复杂的是字体族的映射family,这个我们可以通过后期工序来处理,因此这里略去不表。最后举一个例子:
par(font.lab=3,cex.lab=1.5