zoukankan      html  css  js  c++  java
  • 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每次都在原来已有的图像上新打开一个窗口。

  • 相关阅读:
    PHP-FPM 不完全指南
    【权限设计】如何以“权限”为单位的进行权限设计(二)
    【权限设计】如何以“用户”为单位的进行权限设计(一)
    【权限设计】一个案例,三个角色,简单说下B端产品的权限设计
    gdb调试报错:Missing separate debuginfos, use: debuginfo-install glibc-XXX
    java之 ------ 文件拷贝
    高速排序C++实现
    error: internal error: unable to execute QEMU command &#39;migrate&#39;: this feature or command is not cur
    MySQL查询报错 ERROR: No query specified
    广告倒计时欢迎界面的实现
  • 原文地址:https://www.cnblogs.com/wangshenwen/p/3221813.html
Copyright © 2011-2022 走看看