zoukankan      html  css  js  c++  java
  • 《R语言实战》读书笔记--第三章 图形初阶(一)

    3.1使用图形

    可以使用pdf等函数将图形直接保存在文件中。在运用attach和detach函数的使用中经常出现错误,比如命名重复的问题,所以,应该尽量避免使用这两个函数。

    plot是一般的画图函数,hist是直方图,boxplot是箱型图。这些函数会覆盖前面的图形,如何创建多个图形便于同时查看呢?方法有三:

    1、创建新图形之前先打开一个新的图形窗口,每一幅新图形会出现在最近的图形窗口中。

    dev.new()
    语句1
    dev.new()
    语句2
    ……

    上面的语句,每显现一幅图形之前会新开一个窗口。

    2、运用图形界面上的前进后退按钮即可。

    3、可以使用dev.new,dev.next,dev.prev,dev.set等函数同时打开多个窗口,并选择将哪个输出到哪个窗口中。使用help(dev.cur)查看说明。这个貌似比较麻烦。

    如果将不同的图形放在一个窗口中,可以先用par(mfrow = c(2,3))类似语句创建一个2行3列的图形集合,然后用plot一个一个画图就行了,结果见下图:

    image

    3.2一个简单的例子

    3.3图形参数

    可以通过图形参数自定义一幅图的多个特征(字体、颜色、坐标轴、标题、图例等)。par函数可以对图形参数进行设置,执行par()可以查看各种参数,添加参数no.readonly = TRUE,可以查看可修改的参数列表。需要说明的是,设置par之后在关闭软件前(会话结束前)一直有效。

    可以先记录原始参数,然后结束一段语句之后再进行还原。比如:

    opar <- par(no.readonly = TRUE) #记录初始设置
    par(lty = 2,pch = 17)
    ...
    par(opar)    #进行还原

    当然可以在plot函数的后面直接设置参数。并不是所有的参数都是可以指定的,用help函数可以查看具体函数。下面介绍一些图形参数。

    3.3.1符号和线条

    开启截图模式:

    image

    具体的见下面截图:

    image

    上图中的21-25可以指定边框的颜色(col=)和填充的颜色(bg=).

    image

    上面是线型的设置。

    3.3.2下面是颜色的设置

    image

    上面是颜色的设置说明,需要在具体的函数上进行实现和验证。col函数后面可以用编号、颜色名称、十六进制颜色值、RGB、HSV等进行设置。RGB是三原色,HSV是基于色相、饱和度、亮度来生成函数。colors可以查看所有颜色名称,嗯,657种。http://research.stowers-institute.org/efg/R/Color/Chart 有非常直观的颜色说明!

    可以由很多函数来生成连续的颜色,rainrow(),heat.colors(),terrain.colors()topo.colors(),cm.colors()等,gray函数可以产生多阶灰度,后面加一个0-1之间的向量。

    pie函数用来画饼图,下面是一个例子:

    par(mfrow = c(1,2))
    n <- 10
    mycolors <- rainbow(n)
    pie(rep(1:10),labels = mycolors,
        col = mycolors)
    mygrays <- gray(0:n/n)
    pie(rep(1,n),labels = mygrays,
        col = mygrays)

    下面是结果:

    image

     

    3.3.3文本属性

    图形参数可以指定字号、字体和字样。下面是相关的参数说明:

    imageimage

    image

    字体族是比较难以设置的。family这里的衬线、无衬线字体和等宽字体等可以设置,windo下分别映射为TT Times New Roman、TT Arial和TT Courier New。如果想用其他映射,可以用windoFonts函数进行设置。用pdf输出图形,字体设置会简单一些,用names(pdfFonts())查看可用字体,输出是只需要在pdf函数中增加参数 family = “fontname”就可以了。PostScript格式(一种用来打印的格式字体)也是类似的道理。

    3.3.4图形尺寸与边界尺寸

    image

    完整的边界指南http://research.stowers-institute.org/efg/R/Graphics/Basics/mar-oma/,下面写一个例子:

    dose <- c(20,30,40,45,60)
    dragA <- c(16,20,27,40,60)
    dragB <- 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,dragA,type = "b",pch = 19,lty = 2,
         col = "red")
    plot(dose,dragB,type = "b",pch = 23,lty = 6,
         col = "blue",bg = "green")#这里的col和bg是对pch=23的图形进行的设置,当然这里的col也对线条颜色进行了设置
    par(opar)

    下面是结果:

    image

     

     

     

  • 相关阅读:
    使用git fetch更新远程代码到本地仓库
    图的最短路径(C++实现)
    二叉树遍历(C++实现)
    栈的应用(C++实现)
    求25的所有本原根Python实现
    Web工作方式:浏览网页的时候发生了什么?
    Atom编辑器插件
    H5调取APP或跳转至下载
    Vue父组件传递异步获取的数据给子组件
    flex属性
  • 原文地址:https://www.cnblogs.com/batteryhp/p/4715367.html
Copyright © 2011-2022 走看看