Chapter 03—Getting Started with graphs
例01:一个简单的例子



一. 图形参数
1. 符号和线条


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

2.颜色

例03:


例04: 着色的几种方法

注意:RGB和HSV的具体使用在另外一篇小文章中有讲到。
问题:col.axis,col.lab,col.main,col.sb,fg,bg不知该怎么使用??

3. 文本参数
(1)指定文本大小的参数cex

(2)指定字体家族(font family),大小(size),样式(style)的参数font

例05:关于字体家族(font family)的小例子
> windowsFonts( A=windowsFont("Arial Black"), B=windowsFont("Bookman Old Style"), C=windowsFont("Comic Sans MS") )
A)字体的大小,样式比较容易设置,而字体家族则较难设计;因为对于serif,sans,mono各自的映射是具有设备相关性的。
B)可以用已知参数得到想要的映射,如 family="serif";也可以创建新的映射,如例05。
C)在且仅在Windows平台下,能用函数windowsFont()函数创建映射关系。
D)在例05中,可以使用A,B,C作为字体家族值;如par(family="A"):会指定为Arial Black字体。
E)如果图像以PDF或PostScrip格式输出,则相对直接的改变相应的字体家族。
对于PDF格式:用names(pdfFonts())函数发现合适于系统的字体;用pdf(file="myplot.pdf",family="fontname")函数创建图像。
对于PostScript格式:用names(postscriptFonts())函数发现合适字体;用postscript(file="myplot.ps",family="fontname")函数创建图像。
4. 图形和页边空白参数

例06:
> par(pin=c(4,3),mai=c(1,.5,1,.2))
·图形的大小:宽为 4 inches,高为 3 inches,上下留白为 1 inches,左边留白为 0.5-inch,右边留白为 0.2-inch。
例07:一个图形参数综合应用的例子
> 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))
> par(lwd=2,cex=1.5)
> par(cex.axis=.75,font.axis=3)
> plot(dose,drugA,type="b",pch=19,lty=2,col="red")
> plot(dose,drugB,type="b",pch=23,lty=6,col="blue",bg="green")
> par(opar)

注意:
·par()函数中指定的参数适用于两个图,而plot()中指定的参数仅适用于当前一个图像。
·par(...,no.readonly=FALLSE) 中readonly是一个逻辑值;
若为readonly=TRUE,仅能使用相同设备返回的被随后设备使用的par的参数;要是par()的参数能人为设置,则必须使得readonly=FALSE。
例08:关于readonly=FALSE的例子

二. 添加标题(text),定制轴(customized axes),注释(legends)
例09:综合运用参数的例子
> dose<-c(0,10,20,30,40,50,60,70)
> drugA<-c(0,10,20,30,40,50,60,70)
> 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)
+)

1.标题
使用函数title() ,为图像添加标题(title)和轴标签(axis labels).
title(main="main title",sub="sub title",xlab="x-axis label",ylab="y-axis label")
同时,其他图像参数如:文本大小,字体,颜色等同样可以由title()函数确定。
例10:


2.轴选项
通常使用R的缺省的轴即可,但也能创建用户轴,使用axis()函数。
axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,...)

例10-11:


问题:该图在plot()函数中已经花了一次坐标轴名:x,y;在 title()函数中又对x,y轴重命名,则x,y轴出现坐标名重复。
解决办法:plot()函数中,选项:axes=FALSE,使所有坐标轴都没有名字;xaxt="n",yaxt="n",使XY轴没有名字。
未解决问题:plot()函数中,ann变量是做什么用的,为TRUE或FALSE时各有什么意义?
例11(修改版):


line()函数:在一个已经存在的图像上添加新的图像元素;
mtext()函数:在图像的空白边缘添加文本。
(1)MINOR TICK MARKS
创建图时,自动创建major tick marks;要再创建minor tick marks,需要使用minor.tick()函数,该函数在Hmisc包中。
minor.tick(nx=n,ny=n,tick.ration=n)
·nx,ny:指定在X轴和Y轴上,在major tick marks之间要划分的间隔数量;
·tick.ratio:是minor tick mark相对于major tick mark的大小;
·现在的major tick mark可以恢复成为默认值,通过par("tck")。
例12:画一个简单图,仅有major tick mark


例12(扩展1):在例12基础上,划分minor tick mark



例12(拓展2):在例12(拓展1)的基础上,恢复到仅有major tick mark.


3.参考线(reference lines)
给图像添加参考线,常使用abline()函数。
abline(h=yvalues,v=xvalues)
其他的参数,如线条的类型,颜色,宽度,也是可以在abline()函数中指定的。
例13:一个简单的abline()的例子


补充:seq()函数:生成序列。
·seq(from, to):生成从from到to的值,每次增加1;
·seq(from, to, by):生成从from到to的值,每次增加by。
4. 图例(legend)
若一个图中有多个数据集,那么就需要图像去帮助辨识每一个线条,柱状图,扇形图等表示的意义。常使用legend()函数添加图例。
legend(location,title,legend,...)
| 选项 | 描述 |
| 位置(location) |
1.使用相对左上角的(x,y)坐标 2.使用locator(1) ,然后用鼠标点击该图示要放置的位置; 3.使用关键字,如bottom,bottomleft,left,topleft,top,topright,right,bottomright,center来放置图示在图中的位置; 若使用了上述关键字,则可以用inset来指定一个量使图示移到图像中间。 |
| 标题(title) |
可选,图示标题的字符串。 |
| 图标(legend) |
标号(labels)的一组字符向量。 |
| ...... |
其他选项, 1.注释标签的线条颜色:col= ,一组线条颜色的向量; 2.注释标签的点的类型,pch= ,一组点的类型的向量; 3.注释标签的线条线条宽度或线条样式,lwd=或lty= ,一组点的宽度或样式的向量。 3.fill()函数,为图例创造有色的盒子(colored box). 4.bty用于盒子类型(box type),bg用于背景颜色,cex用于文本大小,text.col用于文本颜色。 5.horiz=TRUE,使图例为横向的。 |
例14:一个综合的例子






5.文本注释(text annotations)
进行文本注释经常使用函数:text()和mtext() .
text()是把注释加在图上,而mtext()是把注释加在空白边缘上。
text(location,"text to place",pos, ... ):常用于标注点并为点添加文本标注。
mtext("text to place",side,line=n, ...)

其他的参数,有如大小(cex),颜色(col),文本字体(font)等。
例15:text()使用的一个例子


例16:text()使用的另一个例子


进行数学注释常用类似与文本注释的方式,使用plotmath()函数。
plotmath():为图像标题,X轴以及Y轴,图像空白处的注释或边缘空白处的注释添加数学符号。
三. 图像的结合
1. par()函数:使用图像参数mfrow=c(nrows,ncols)来创建一个n行×n列的按行填充的矩阵图像;
mfcol=c(nrows,ncols)来..........................按列...................。
例17:使用par(mfrow=c(2,2)),使图像中有两行两列的并排小图像,并且这些小图像是由行到列画出的。

例18:使用par(mfcol=c(3,1)),使得图像中有3列1行图像,这些图像是按列画出的。

注意: 高阶函数hist()包括一个缺省的图像标题,用main=""表示,或ann=FALSE表示。
2.layout()函数:创建layout(mat),mat是一个由矩阵对象实例化的,放置要结合的多个图像的位置。
参数:widths表示列的宽度值的向量;heights表示行的高度值的向量。
例19:使用layout()函数,规定图像中每行放置几个小图像。

例19(扩展):使用layout()函数中的widths和heights参数来指定每个小图像的大小。

3. fig=graphical parameter:利用一些图像重叠在一起,来创建一个简单的图像。


注意:fig参数及new=TRUE每次都在原来已有的图像上新打开一个窗口。
Chapter 03—Getting Started with graphs的更多相关文章
- Think Python - Chapter 03 - Functions
3.1 Function callsIn the context of programming, a function is a named sequence of statements that p ...
- 一个人写的操作系统 - Sparrow OS
一个人写的操作系统 - Sparrow OS 自己写一个操作系统,这是在过去的几年里我一直为之努力的目标,现在终于完成了. 缘起 自己动手写操作系统的动机最初来自于学习Linux遇到的困难. 我是一个 ...
- 微软Code Hunt答案(00-05)——沉迷娱乐的我
昨天看到微软出的网游Code Hunt.o(∩_∩)o...哈哈,还不好好玩一吧,个人感觉不是一个模块比一个模块难的,Code Hunt是按功能划分.所以不要怕自己做不来.由于不同人特长不一样. 像A ...
- 「Haskell 学习」二 类型和函数(上)
随着学习的深入,笔记会补充和修订.当然,这个补充修订也许会鸽,但我一定会坚持写完. 这个笔记假定你至少学过C/C++及Python,或与这两种语言类型相同的语言. 类型系统概述 “Haskell’s ...
- Dreamweaver Flash Photoshop网页设计综合应用 (智云科技) [iso] 1.86G
全书共15章,主要包括网页制作基础.Dreamweaver CC网页制作.Photoshop CC网页图像设计.Flash CC网页动画设计以及综合案例实战5个部分.通过本书的学习,不仅能让读者学会三 ...
- Dreamweaver Flash Photoshop网页设计综合应用 (智云科技) [iso] 1.86G
全书共15章,主要包括网页制作基础.Dreamweaver CC网页制作.Photoshop CC网页图像设计.Flash CC网页动画设计以及综合案例实战5个部分.通过本书的学习,不仅能让读者学会三 ...
- SQL Server2012 T-SQL基础教程--读书笔记(1-4章)
SQL Server2012 T-SQL基础教程--读书笔记(1-4章) SqlServer T-SQL 示例数据库:点我 Chapter 01 T-SQL 查询和编程背景 1.3 创建表和定义数据的 ...
- 吴裕雄--天生自然 R语言开发学习:图形初阶(续二)
# ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...
- 吴裕雄--天生自然 R语言开发学习:图形初阶(续一)
# ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...
随机推荐
- 使用Windows Powershell卸载和安装Win10 原生应用的方法
新装的Win10带有大量的实际工作和生活中不怎么常用的APP,如果觉得这些APP占用磁盘空间或者想要卸载这些应用(APP),Win10下并不能使用Windows 应用管理器直接图形化地卸载这些应用,而 ...
- Web for pentester_writeup之XSS篇
Web for pentester_writeup之XSS篇 XSS(跨站脚本攻击) Example 1 反射性跨站脚本,URL中name字段直接在网页中显示,修改name字段, Payload: h ...
- CheckStyle,定制属于自己的Java编码规范
前言 如今,代码规范几乎是当下稍有追求的团队都要求做到的,但是对于Java编码规范,不同的公司或团队却有着不同的标准.尽管官方提供了一些标准,但是在基本规则的基础上,各大公司又有自己的规范,比如Sun ...
- [无用]LNC李纳川的日常NC操作
NC说他从不CE NC说他想明白了 表示嘲讽. 好吧好吧其实还是有一个美好的结局的. 虽说我在嘲讽他,但我并不会做TAT 大神吹牛没毛病,我个蒟蒻还是老老实实刷水题吧.
- 大数据之路day04_2--经典bug(equals与==比较不同,break的跳出不同)
一.equals与==比较不同 在实现某个人去5个商场去购物,控制台输入是否购物(Y/N)的时候,在比较出了问题,发现无论输入什么都是false,后来查阅资料发现,字符串的比较,==和equals不一 ...
- ubuntu下minicom和usb串口转接
ubuntu下minicom和USB转串口(转) (2013-03-23 21:07:54) 转载▼ 标签: it 分类: 嵌入式linux minicom是linux下串口通信的软件,它的使用完全依 ...
- len、is、==、可变于不可变类型
a="asdfghjkl;'iuygb" b="小米" c=['a','b','c'] d= {'name':1,'age':24} # len统计字符或元素的 ...
- 第一篇:jdk8下载和idea导入,java源码结构
一.下载和导入 下载和导入到idea,完全参考文章:https://blog.csdn.net/zhanglong_4444/article/details/88967300 照做即可,详解简单到位. ...
- 将 /u 转变为 utf-8 编码
将 /u 转变为 utf-8 编码 PHP实例: $result = {"errno":-1,"message":"\u8bbf\u95ee\u5fa ...
- nyoj 44-子串和(子串和最大问题)
44-子串和 内存限制:64MB 时间限制:5000ms Special Judge: No accepted:12 submit:48 题目描述: 给定一整型数列{a1,a2...,an},找出连续 ...