R4 数据可视化教程(四)
十一、列联表和离散数据图
在表 A-1 中,给出了为离散数据和列联表创建图形的函数。列联表是由函数 table()创建的,其中要包含在表中的变量在对 table()的调用中用逗号分隔,作为 list 对象输入或作为 data.frame 对象输入。
餐桌 A-1
用于绘制列联表和其他形式的离散数据的函数
|函数名
|
描述
| | --- | --- | | assocplot() | 对于二维列联表或数值矩阵(x)。第一个变量绘制在水平轴上,第二个绘制在垂直轴上。像元中的值与该像元的估计期望值之间的差值将绘制为一个矩形,与水平和垂直类相对。矩形的宽度与单元格中的值成比例。默认情况下,负差异显示为红色并标绘下来。正差异用黑色标出。 | | barplot() | 对于数值向量或矩阵(x)。对于向量,为向量的每个元素绘制一个条,其中条的高度由元素的值给出。对于矩阵,每一行中的值以堆叠或并排的方式绘制在一起。 | | 四重绘图( ) | 对于 2×2×k 列联表或 2×2 矩阵(x)。对于 k 个类别中的每一个,绘制了显示类别之间关联的度量的图。这些图是圆形的。 | | heatmap() | 对于数值矩阵(x)。绘制矩阵列的热图。 | | 镶嵌图( ) | 对于基于多个变量(x)或连接分类变量的公式(formula)的列联表。创建按每个单元格中的计数确定大小并按每个变量中的类排序的正方形。第一个变量在顶部,第二个在左侧,第三个在顶部,第四个在左侧,依此类推。 | | 饼图( ) | 对于非负数值向量(x)。生成饼图–饼图中切片的面积与向量中的值成比例。 | | spineplot() | 对于数值或因子向量(x)和因子向量(y)。也可以与二维列联表(x)一起使用,或者与用波浪号将 y 连接到 x 的公式(公式)一起使用。当两个变量都是分类变量时,创建镶嵌图。当 x 是数字时,创建一个旋量图。(对于旋量图,y 中的类被分配不同的颜色,x 被分成等长的容器。x 容器的大小取决于容器中有多少观察值。在每个区域上方绘制了颜色块,给出了该区域内的 y 类观测值。 |
十二、连续变量图
表 B-1 中给出了为连续变量创建图形的函数。连续变量是任何一种数值变量。
表 B-1
绘制连续变量的函数
|函数名
|
描述
| | --- | --- | | 箱线图( ) | 对于一个数值向量(x),多个用逗号(…)分隔的数值向量,一个数值向量列表(x),或一个左边有一个数值向量,右边有一个或多个分类变量(可以是数值)的公式(公式)。绘图框为前三种情况下的变量绘图。绘图框对于公式情况,左侧的变量由右侧的变量绘制。 | | cdplot() | 对于数字向量(x)和相同长度的分类向量(y)或左边是数字向量、右边是分类变量的公式(公式)。使用条件分类变量绘制条件密度。密度是分层绘制的。在垂直维度中,每个类的条件密度被归一化,使得密度总和为 1。 | | 点图表( ) | 对于数值向量或矩阵(x)。可以使用 groups 参数进行分组。在 x 值和等于 x 的索引值(或行号)的 y 值处绘制一个点。 | | 历史( ) | 对于单个数值向量(x)。绘制矢量的直方图。 | | 匹配打印( ) | 对于两个数字对象,每个都可以是向量或矩阵(x 和 y)。向量的长度和矩阵的行数必须相等。y(或 y,如果 y 是向量)的第一列相对于 x(或 x,如果 x 是向量)的第一列绘制。y 的第二列相对于 x 的第二列绘制,依此类推。如果 y 的列数不等于 x 的列数,则较小矩阵(或向量)的列循环。可以绘制点、线或点和线。这些图都在同一个绘图区域中绘制。 | | 配对( ) | 对于可以分别用 as.numeric()或 data.matrix()转换为数值的矩阵或数据框(x)。或者用于包含变量的公式,这些变量是可以转换为数字的向量(公式)。针对每个列或向量相对于每个其他列或向量绘制散点图。所有这些都绘制在一个图形中的图形矩阵中。 | | 茎( ) | 对于数值对象(向量、矩阵或数组)(x)。使用对象中的所有数字创建茎叶图。 | | stripchart() | 对于单个数字向量(x)、数字向量列表(x)或数字向量在波浪号左侧、分组变量在右侧(x)的公式。分组变量可以是除 raw 之外的任何原子模式。如果 x 是一个列表,对于列表中的每个向量,在向量中的值处绘制一条水平的绘制字符线(默认为正方形)。对于公式,将为每组绘制一条水平线。每个向量或组有一条线。 |
十三、绘制多个图的函数
在表 C-1 中,列出了绘制多个图的函数。
表 C-1
用于绘制多幅图的功能
|函数名
|
描述
| | --- | --- | | 科普洛特( ) | 对于带有两个数值向量和一个或两个条件变量的公式(公式)。条件变量可以是除原始或复杂模式之外的任何原子模式。自变量公式采用 x ~ y | g1 或 x ~ y | g1 + g2 形式的值,其中 x 和 y 是数值向量,g1 和 g2 是条件变量。该函数为每个条件级别生成一个单独的图。这些图从左下角开始,一直到右边。缺省情况下,换行符由 coplot()设置,但是可以在函数调用中设置。 | | layer.plot( ) | 对于数字向量或矩阵,通常是时间序列(即 ts 或 mts 类)(x)。根据向量或矩阵的滞后值绘制原始向量或矩阵。滞后的数量由参数 lags 设置,或者可以由参数 set.lags 设置特定滞后的数量。对于矩阵,首先绘制第一列的滞后,然后绘制第二列的滞后,依此类推。这些图从左上角开始,一直到右边。默认情况下,该函数设置换行符,但是可以设置布局。 | | 配对( ) | 参见附录 B 。 | | 星星( ) | 对于矩阵或数据帧(x)。变量可以是任何模式。绘制星形图、圆锥线段图,或者,如果 locations 参数是一个两元素数值向量,则绘制一个蜘蛛图。对于矩阵和数据框,将为矩阵或数据框的每一行生成一个图。对于蜘蛛图,一个图由矩阵或数据框中的变量组成。该图绘制在由位置给出的点上,看起来有点像蜘蛛网。 |
十四、平滑器
表 D-1 中给出了平滑数据的函数。大多数平滑器不会自动绘制平滑后的数据,这些数据可以通过调用 plot()来绘制(或者在调用 plot()后用 lines()或 points()来绘制)。
表 D-1
平滑数据的函数
|函数名
|
描述
| | --- | --- | | 内核( ) | 对于单元素字符向量或数字向量(coef)。coef 的可能字符串(预设内核)是“daniell”、“dirichlet”、“fejer”或“modified.daniell”。该函数给出了使用内核的平滑器的内核设计。返回 tskernel 类的对象。可以用 plot()绘制。 | | kernapply() | 对于数字向量或矩阵或 ts、mts 或 tskernel 类(x)和内核(k)的对象。参数 k 被设置为等于对 kernel()的调用。根据 x 的值,kernapply()平滑向量、矩阵的列、时间序列或时间序列矩阵中的单个时间序列。可以用 plot()绘制。 | | ksmooth() | 对于两个长度相同的数值向量(x 和 y)和一个必须设置为“box”或“normal”的内核(kernel)。使用 Nadaraya-Watson 核回归估计量。可以用 plot()绘制。 | | 黄土.光滑( ) | 对于长度相同的两个数值向量(x 和 y)。通过局部多项式回归(黄土)方法进行平滑。可以用 plot()绘制。 | | 洛斯( ) | 对于一个数值向量(x)或两个相同长度的数值向量(x 和 y)。通过局部加权多项式回归进行平滑。可以用 plot()绘制。 | | runmed() | 对于一个数值向量(x)和一个一元数值向量,给出平滑器的宽度(k)。用运行中值平滑。可以用 plot()绘制。 | | scatter.smooth() | 对于一个数值向量(x)或两个长度相同的数值向量(x 和 y)。绘制点和用黄土平滑的线()。 | | 平滑( ) | 对于数值向量或时间序列(x)。使用 Tukey 开发的六个运行中值平滑器之一进行平滑。可以用 plot()绘制。 | | 平滑散布( ) | 用于一个(x)数值向量或两个等长数值向量(x 和 y)。绘制带有彩色斑点的散点图版本。使用二维核密度估计器进行平滑。 | | smooth.spline() | 对于一个数值向量(x)、两个等长的数值向量(x 和 y)或一个时间序列(x)。用三次平滑样条曲线进行平滑。可以用 plot()绘制。 | | supsmu() | 对于长度相同的两个数值向量(x 和 y)。用弗里德曼的“超级平滑器”平滑。可以用 plot()绘制。 | | tsSmooth( StructTS()) | 对于单个时间序列(x)。StructTS()适合结构化时间序列模型。目前,tsSmooth 仅使用 StructTS 类的对象运行。如果使用 plot()绘制对 tsSmooth()的调用,则根据时间序列的频率是 1 还是大于 1,分别绘制两个或三个图。这些图是拟合模型的水平、趋势和季节组成部分。 |
十五、时间序列图
在表 E-1 中,给出了用于时间序列向量和矩阵的函数。
餐桌 E-1
用于绘制列联表的函数
|函数名
|
描述
| | --- | --- | | acf()和 pacf() | 用于时间序列向量或矩阵(ts 或 mts 类)或数字向量或矩阵(x)。绘制滞后时间序列的自相关或自协方差(acf)和偏自相关(pacf)。(只有单变量的情况对 pacf()起作用——多个时间序列和矩阵给出废话。)要绘制的滞后数可以由参数 lag.max 指定。由任一函数创建的对象都具有 acf 类,并且可以使用 plot()绘制。 | | ccf() | 用于两个数字向量或两个时间序列(ts 类的对象)(x 和 y)。绘制 x 和 y 滞后之间的互相关或互协方差–向前和向后,从 0 开始。参数 lag.max 设置绘图的最大滞后。对 ccf()的调用返回 acf 类的一个对象——可以用 plot()绘制。 | | cpgram() | 对于单个时间序列(ts 类的对象)(ts)。绘制累积周期图。 | | layer.plot( ) | 参见附录 C 。 | | monthplot(),monthplot( stl()),monthplot( StructTS()) | 对于单个时间序列,调用 stl()(用于按黄土拟合时间序列的季节分解),调用 StructTS()(用于按最大似然估计拟合结构化时间序列),或者调用数值向量(monthplot()假定数值向量每个周期有 12 个周期)(x)。该函数估计并绘制每个周期的图形估计量,并在整个绘图区域按周期绘制估计量。 | | ts.plot( ) | 对于单个和多个时间序列,用逗号(…)分隔。在同一图上以相同的频率绘制多个时间序列。 | | tsdiag() | 用于调用 arima()或 StructTS()(对象)。为拟合的时间序列模型绘制三个诊断图。这些图是模型的标准化残差、模型的自相关函数以及模型的永盒统计的 p 值。 | | tsSmooth() | 参见附录 D 。 |
十六、杂项绘图函数
在表 F-1 中,给出了其他地方没有涉及的一些绘图的杂项函数。
餐桌 F-1
用于绘图的杂项函数
|函数名
|
描述
| | --- | --- | | biplot() | 用于两个两列数字矩阵,通常行数不同(x 和 y),或者用于调用 prcomp()或 princomp( ) (x)。在同一绘图区域绘制两组数据。默认情况下,第二个图为红色,图中有箭头,右侧和顶部有红色刻度线。第一个图的刻度在左下方,点和刻度用黑色表示。第一个图中的点和第二个图中的点都被标记,第一个用黑色,第二个用红色。默认情况下,红色标签为 Var1、Var2、… Varn,其中 n 是 y 矩阵中的行数。 | | 轮廓( ) | 参见第 4.3.5 节。 | | 曲线( ) | 参见第 4.3.2 节。 | | 图像( ) | 参见第 4.2.4 节。 | | Interaction.plot() | 对于两个因子向量(可以是除 raw 之外的任何原子模式)和一个数值向量,长度都相同(x.factor、trace.factor 和 response)。一个函数(默认为 mean,由 fun 参数设置)应用于交叉因子级别内的第三个向量(通过交叉 x.factor 和 trace.factor 向量找到)。相对于 x 因子绘制结果。为 trace.factor 的每个级别绘制一条线 | | grconvertX(),grconvertY() | 以九种不同的单位给出点的位置。单位与轴比例、绝对大小或图形设备、图形或绘图相关。无论是 x 轴还是 y 轴。 | | 透视( ) | 对于数值矩阵(z,或者,如果 x 和 y 采用默认值,则可以是列出的第一个参数,不命名)。如果提供了 x 和 y,这两个必须是升序数字向量。z 中的列数给出 x 的长度,z 中的行数给出 y 的长度。绘制透视图。用显示的 x、y 和 z 轴创建三维感。 | | qqline() | 对于数值向量(y)。默认情况下,绘制一条穿过 y 的 0.25 和 0.75 分位数以及标准正态分布分位数的线(在 x 轴上)。可以向由 qqnorm()或 qqplot()生成的图添加一条线,或绘制一个独立的图。 | | qqnorm() | 对于数值向量(y)。根据正态分布的分位数绘制排序后的 y 值。 | | qqplot() | 对于长度不一定相同的两个数值向量(x 和 y)。根据较长向量的分位数绘制较短向量。 | | screeplot() | 对于包含名为 sdev 的元素的列表,该元素包含非负数值。绘制 sdev 值平方的条形图。对于主成分分析,结果是一个 screeplot。(prcomp()和 princomp()的输出是一个包含 sdev 元素的列表。) | | 向日葵公园( ) | 对于一个数值向量或两个相同长度的数值向量(x 或 x 和 y)。类似于 plot()的图,除了图上具有多个观测值的地方被绘制为“向日葵”,具有与重合观测值一样多的花瓣。 | | 术语图( ) | 对于对回归函数(如 lm()或 glm())的调用,它生成一个包含名为 terms (model)的元素的列表。对于模型中的独立变量,termplot()为每个变量绘制一个图。回归系数的值乘以变量的值,并根据变量绘制。每个变量生成一页。如果参数 partial.resid 设置为 TRUE,还会绘制每个变量的部分残差。 | | xspline() | 对于一个数值向量(x)或两个长度相同的数值向量(x 和 y)。用线连接点。添加到现有地块。 |