當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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.。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。