本篇继续介绍基础绘图系统中的几个绘图函数。

spineplot()

该函数用于绘制棘状图,有以下两种语法结构:

spineplot(x, y = NULL,breaks = NULL, tol.ylab = 0.05,off = NULL, ylevels = NULL,col = NULL, main = "",xlab = NULL, ylab = NULL,xaxlabels = NULL, yaxlabels = NULL,xlim = NULL, ylim = c(0, 1),axes = TRUE, ...)spineplot(formula, data = NULL,breaks = NULL, tol.ylab = 0.05,..., subset = NULL,drop.unused.levels = FALSE)

棘状图是百分比形式的累积柱状图或直方图,因此要求y参数为因子变量。

x参数也为因子变量时,绘制百分比形式的累积柱状图:

spineplot(factor(vs) ~ factor(cyl), data = mtcars,xlab = "气缸数",ylab = "发动机",yaxlabels = c("V型", "直型"),col = c("skyblue", "darkgreen"))

x参数为连续变量时,绘制百分比形式的累积直方图:

spineplot(factor(vs) ~ mpg, data = mtcars,xlab = "每英里耗油量(加仑)",ylab = "发动机",yaxlabels = c("V型", "直型"),col = c("skyblue", "darkgreen"))

  • 棘状图与柱状图、直方图还有一个区别:每个“柱形”的宽度与它对应的样本数成正比。

symbols()

该函数绘制符号图,共有6种供选择的符号类型:

symbols(x, y = NULL,circles, squares,rectangles, stars,thermometers, boxplots,inches = TRUE, add = FALSE,fg = par("col"), bg = NA,xlab = NULL, ylab = NULL,main = NULL,xlim = NULL, ylim = NULL, ...)
  • circles、squares、rectangles、stars、thermometers、boxplots:此六个参数分别对应一种符号类型,即圆形、方形、矩形、星形、温度计形、箱形。

circles

该参数绘制圆形符号,需要指定一个与xy参数等长度的向量,来控制圆形半径的相对大小,向量的元素必须为正数。

符号的绝对大小由inches参数控制。当它为TRUE时,最大的符号的尺寸被设定为1英寸,其余符号等比例缩放;当它为数值时,最大符号的尺寸英寸值为该数值,其余符号同样等比例缩放;当它为FALSE时,符号大小使用坐标轴刻度的单位。

symbols(mtcars$mpg, mtcars$qsec,circles = mtcars$cyl,inches = 0.1,xlab = "每英里耗油量(加仑)",ylab = "1/4英里用时",fg = "coral", bg = "lightgreen")

  • 可以看出,通过此函数可以在基础绘图系统中实现类似ggplot2工具包使用变量映射控制符号大小的功能。

rectangles

该参数绘制矩形符号,需要指定一个列数为2、行数同xy参数长度的矩阵控制矩形符号的宽(第一列)和高(第二列)的相对大小。

符号的绝对大小设置方法同circles参数。

plot(mtcars$mpg, mtcars$qsec,pch = 20, cex = 0.8,xlab = "每英里耗油量(加仑)",ylab = "1/4英里用时")
symbols(mtcars$mpg, mtcars$qsec,rectangles = cbind(rep(6, 32), mtcars$cyl),inches = 0.2, add = T,fg = "coral", bg = rgb(0.1,0.1,1,0.2))

其他符号

squares参数的设置方法类似circles参数。

starsthermometersboxplots参数较少使用,分别需要列数为3及以上、3或4、5的矩阵控制相应要素的相对大小。

polypath()

该函数按照点的顺序依次使用线段进行连接,最后再将首、尾两点连接以形成封闭的图形,即多边形。

该函数属于低级函数,需要在主函数之后使用。

函数语法结构如下:

polypath(x, y = NULL,border = NULL, col = NA,lty = par("lty"),rule = "winding", ...)
  • border参数控制路径的颜色,col参数控制多边形内部的填充颜色。

x = c(1,2,3,2)
y = c(2,1,2,3)
plot(x, y, pch = 21, bg = "skyblue",xlab = "", ylab = "",xlim = c(1,4))
polypath(x, y, col = rgb(0.1,0.1,1,0.2))
text(x, y, labels = c(1:4),adj = -1, col = "red")m = c(2,3,4,3)
n = c(2,1,2,3)
polypath(m, n, col = rgb(1,0.1,0.1,0.2))
text(m, n, labels = LETTERS[1:4], col = "red")

  • 图中数字和英文字母表示点的顺序。

polygon()

该函数与polypath函数的功能类似,但多了densityangle参数,参数意义同barplothist等函数的同名参数一致。

polygon(x, y = NULL, density = NULL,angle = 45, border = NULL,col = NA, lty = par("lty"),..., fillOddEven = FALSE)

示例如下:

x = c(1,2,3,2)
y = c(2,1,2,3)
plot(x, y, pch = 21, bg = "skyblue",xlab = "", ylab = "",xlim = c(1,4))
polygon(x, y, density = 10, angle = 30,col = rgb(0.1,0.1,1,0.2), border = "darkgreen")
text(x, y, labels = c(1:4),adj = -1, col = "red")m = c(2,3,4,3)
n = c(2,1,2,3)
polygon(m, n, density = 10, angle = -60,col = rgb(1,0.1,0.1,0.2), border = "darkgreen")
text(m, n, labels = LETTERS[1:4], col = "red")

assocplot()

该函数绘制Cohen-Friendly关联图。语法结构如下:

assocplot(x, col = c("black", "red"), space = 0.3,main = NULL, xlab = NULL, ylab = NULL)

x参数必须为二维的列联表。在R中,根据数据框生成列联表的函数为xtabs。如生成mtcars数据集中cyl和vs变量之间的列联表:

x <- xtabs(~ cyl + vs, data = mtcars)x
##    vs
## cyl  0  1
##   4  1 10
##   6  3  4
##   8 14  0

Cohen-Friendly关联图的绘制原理如下:

、分别表示列联表的行和列,表示行、列对应的样本数量,即频数,、分别表示第行、第列的样本总数,表示全局的样本总数。则,

行、列的样本数的期望值:

行、列对应的皮尔逊卡方值:

assocplot(x, main = "Relation between cyl and vs color")

图中,为正数时,对应的柱形方向向上,颜色受col参数的第一个元素控制;反之方向向下,颜色受col参数的第二个元素控制;

柱形的长度与的绝对值成正比,宽度与成正比,因此柱形的面积和真实频数与期望频数之差成正比。

cdplot()

该函数绘制条件密度图(Conditional Density Plots),也有如下两种语法结构:

cdplot(x, y,plot = TRUE, tol.ylab = 0.05,ylevels = NULL, bw = "nrd0",n = 512, from = NULL, to = NULL,col = NULL, border = 1, main = "",xlab = NULL, ylab = NULL,yaxlabels = NULL, xlim = NULL,ylim = c(0, 1), ...)cdplot(formula, data = list(),..., subset = NULL)

该函数要求条件变量y参数为因子变量。

示例如下:

cdplot(factor(cyl) ~ mpg, data = mtcars,col = c("coral", "darkgreen", "skyblue"),xlab = "每英里耗油量(加仑)",ylab = "气缸数")

  • 该图可以充分表达“每英里耗油量(加仑)”与“气缸数”之间的关系:随着“每英里耗油量(加仑)”的增加,气缸数为4的汽车样本密度逐渐增加,气缸数为8的汽车样本密度逐渐减小,气缸数为6的汽车样本密度先增大后减小。

graphics | 基础绘图系统(八)——棘状图、符号图、多边形(路径)图、Cohen-Friendly关联图、条件密度图...相关推荐

  1. graphics | 基础绘图系统(五)——plot函数功能再探和低级绘图函数

    plot函数虽然主要用于绘制散点图和折线图,但它实际上是一个比较全能的函数.本篇就介绍如何使用plot函数绘制其他类型的图形.另外,上篇介绍的高级绘图函数如boxplot.barplot等都有参数ad ...

  2. graphics | 基础绘图系统(十)——星形图、四瓣图、马赛克图

    插播消息:最初建的交流群已经无法使用了,新建群的加入方式见次条推送. 本篇是"基础绘图系统"系列推文的最后一篇,我们来介绍三种不常见的图形,对应的绘图函数分别如下: stars() ...

  3. graphics | 基础绘图系统(九)——栅格图、点密度图、等高线(填充)图、三维图...

    先插播一则消息:刚建的交流群莫名其妙地被判违规,不仅无法加新人,而且群内的消息可能只能自己看到.先看看过几天能不能解封,不行再另想办法. 本篇是"基础绘图系统"系列的第九篇推文,也 ...

  4. graphics | 基础绘图系统(七)——各式各样的散点图/折线图

    前面已经用了六篇推文系统地介绍了R语言的基础绘图系统的主要函数用法,以及柱状图.直方图.箱形图.扇形图等常见图形的绘制方法,接下来将计划用四篇推文介绍使用基础绘图系统能够绘制的其他各类图形. 本篇介绍 ...

  5. graphics | 基础绘图系统(一)——主函数plot及其参数

    R语言的基础绘图系统主要由基础包graphics提供,它包含了各式的图形绘制函数,如折线图.直方图.箱形图等.本篇主要介绍plot()函数的用法,它主要用于绘制散点图和折线图. plot()函数的语法 ...

  6. graphics | 基础绘图系统的拼图方法之三:使用mfrow、mfcol参数和layout函数

    R的基础绘图功能是个自成体系的系统,尽管有许多工具包可以"一行代码绘制一幅图",但是小编仍然认为系统地学习基础功能非常重要. 本篇推文是为了补全关于基础绘图系统的拼图功能的介绍,前 ...

  7. graphics | 基础绘图系统(三)——添加文本标注、坐标轴线和图例

    前面介绍了使用使用高级绘图函数plot()绘制基本图形和使用参数函数par()美化要素.设置布局等.但有时为了表达更丰富的内容,我们还需要添加文本标注以及必要的图例,这些可以使用text().mtex ...

  8. graphics | 基础绘图系统(四)——柱状图、直方图、扇形图、箱形图和函数图象...

    前面介绍的主函数plot()主要用于绘制散点图和折线图,绘制其他常见的图形如柱状图.直方图.扇形图和箱形图等可以调用专门的函数. 1 柱状图 绘制基础柱状图的函数是barplot(),其语法结构如下: ...

  9. graphics | R语言的基础绘图系统(二)—— 绘图参数及par函数

    前篇(graphics | 基础绘图系统(一)--主函数plot及其参数)介绍了基础系统的绘图主函数plot()及其参数.实际上,plot()函数的参数主要由par()提供.不同于plot()函数,p ...

最新文章

  1. keras卷积层用法API
  2. PE文件感染和内存驻留
  3. 用栈实现计算器c语言报告,请问,用c语言做一个计算器 包括+-*/()的运算 用栈 该怎么做...
  4. devc++鼠标变成了光标_游戏鼠标选购避坑指南 教你如何轻松选择适合自己的鼠标...
  5. Linux从入门到精通——文件传输
  6. ceisum 加载geojson,webgl 加载geojson数据没有贴地
  7. 军用计算机品牌,军用电脑笔记本有何特点 军用电脑笔记本品牌推荐
  8. 图论 BZOJ 3669 [Noi2014]魔法森林
  9. maven打包所有依赖
  10. 累加数据段中的前3个字型数据
  11. APP安全——反编译分析(反编译、再编译、签名)
  12. 下载bilibili视频
  13. springboot 连接并操作redis 完全可用的
  14. 不良资产证券化未来推进需跨越的障碍
  15. 流量卡之家:5G从概念到落地,未来工厂触手可及
  16. kindle上查看微信读书的书籍
  17. IMAX6ULL正点原子学习笔记(led汇编驱动)
  18. 材料研究生转行做什么?
  19. Java接口的定义与实现
  20. 左移,右移的数字意义

热门文章

  1. 华为云-云容器引擎 CCE新功能发布动态
  2. 实现裸金属服务器的安全微分段
  3. Java设计模式学习总结(8)——结构型模式之桥接模式
  4. Mysql学习总结(16)——Mysql之数据库设计规范
  5. Jquery学习总结(1)——Jquery常用代码片段汇总
  6. 全国计算机vb二级题型,全国计算机二级考VB机试常见题型汇总.doc
  7. 制作第一个HTML网页,2制作第一个HTML网页.ppt
  8. 通过jQuery获取窗口的高度
  9. Java怎样获取Content-Type的文件类型Mime Type
  10. 说说你对Jdk并发包中的CAS实现的了解?