当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R statefig 绘制状态空间图。


R语言 statefig 位于 survival 包(package)。

说明

对于多状态生存模型,有一个显示状态以及状态之间可能的转换的图形很有用。此函数创建一个简单的“框和箭头”图形。它的目标是简单。

用法

statefig(layout, connect, margin = 0.03, box = TRUE, cex = 1, col = 1,
  lwd=1, lty=1, bcol=col, acol=col, alwd=lwd, alty=lty, offset=0)

参数

layout

说明页面上框的布局。请参阅下面的详细说明。

connect

每个状态占一行的方阵。如果connect[i,j] !=0,则从状态 i 到状态 j 绘制一个箭头。矩阵的行名称用作状态的标签。

margin

标签与周围框之间以及框与箭头之间的空白部分,作为绘图区域大小的函数。

box

应该画盒子吗?对或错。

cex , col , lty , lwd

用于文本和框的默认图形参数。最后 3 个可以是值向量。

bcol

框的颜色(如果与文本使用的颜色不同)。

acol , alwd , alty

箭头的颜色、线型和线宽。

offset

如果两个方向都有过渡,则用于稍微偏移两个框 x 和 y 之间的箭头。在这种情况下,默认值 0 会导致双头箭头 - 绘制箭头但它们重合。正值会导致每个箭头向左移动,从站在箭头脚部并朝箭头方向看的人的角度来看,负偏移量会向右移动。值 1 对应于绘图区域的大小。

细节

颜色、线型和线宽的参数都可以是向量,在这种情况下它们会根据需要被回收。框和文本按照 connect 的行名顺序绘制,箭头按照通常的 R 矩阵顺序绘制。

layout 参数通常是整数向量,例如向量 (1, 3, 2) 说明具有 3 列的布局。第一列有一个状态,第二列有 3 个状态,第三列有 2 个状态。对于 x 和 y,绘图区域的坐标都是 0 到 1。在一列中,框的中心均匀分布,框和边距之间有 1/2 的间距,例如,4 个框将位于 1/8、3/8、5/8 和 7/8。如果 layout 是值为 (1, 3, 2) 的 1 列矩阵,则布局将具有三行,每行分别有 1、3 和 2 个框。或者,用户可以提供直接给出中心的 2 列矩阵。

对于没有转换的状态对,连接矩阵的值应为 0;对于有转换的状态对,连接矩阵的值应为 0 到 2 之间。状态通过一条弧线连接,该弧线穿过两个框的中心以及它们之间的第三个点。具体来说,考虑一条连接两个中心的线段,并以与中点成直角的方式竖立第二条线段,其长度为 d 乘以中心到中点的距离。圆弧经过此点。 d=0 的值给出一条直线,d=1 给出以中点为中心的右手半圆,d=-1 给出左手半圆。 connect 矩阵包含 d+1 的值,且 -1 < d < 1。

连接箭头从(框 1 的中心 + 偏移量)绘制到(框 2 的中心 + 偏移量),其中偏移量(空白)由 boxmargin 参数确定。如果一对状态太接近,则可能会导致箭头指向错误的方向。

包含框中心的矩阵,并设置了不可见属性。

注意

此函数的目标是使“good enough”图形尽可能简单,从而鼓励用户绘制它们。 layout 参数的灵感来自 diagram 包,它可以绘制更复杂且装饰精美的图形,例如许多不同的形状、阴影、多种类型的连接线等,但代价是更加复杂。

由于曲线是作为一组短线段绘制的,因此线型对于这种情况几乎没有影响。

例子

# Draw a simple competing risks figure
states <- c("Entry", "Complete response", "Relapse", "Death")
connect <- matrix(0, 4, 4, dimnames=list(states, states))
connect[1, -1] <- c(1.1, 1, 0.9)
statefig(c(1, 3), connect)

作者

Terry Therneau

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Draw a state space figure.。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。