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


R stars 星圖(蜘蛛圖/雷達圖)和線段圖


R語言 stars 位於 graphics 包(package)。

說明

繪製多元數據集的星形圖或分段圖。使用一個位置,還可以繪製‘spider’(或‘radar’)圖。

用法

stars(x, full = TRUE, scale = TRUE, radius = TRUE,
      labels = dimnames(x)[[1]], locations = NULL,
      nrow = NULL, ncol = NULL, len = 1,
      key.loc = NULL, key.labels = dimnames(x)[[2]],
      key.xpd = TRUE,
      xlim = NULL, ylim = NULL, flip.labels = NULL,
      draw.segments = FALSE,
      col.segments = 1:n.seg, col.stars = NA, col.lines = NA,
      axes = FALSE, frame.plot = axes,
      main = NULL, sub = NULL, xlab = "", ylab = "",
      cex = 0.8, lwd = 0.25, lty = par("lty"), xpd = FALSE,
      mar = pmin(par("mar"),
                 1.1+ c(2*axes+ (xlab != ""),
                 2*axes+ (ylab != ""), 1, 0)),
      add = FALSE, plot = TRUE, ...)

參數

x

數據的矩陣或 DataFrame 。將為 x 的每一行生成一個星形圖或線段圖。允許缺失值 ( NA ),但它們被視為 0(縮放後,如果相關的話)。

full

邏輯標誌:如果TRUE,線段圖將占據一整圈。否則,它們僅占據(上)半圓。

scale

邏輯標誌:如果 TRUE ,則數據矩陣的列獨立縮放,以便每列中的最大值為 1,最小值為 0。如果 FALSE ,則假設數據已被其他某個縮放算法範圍

radius

邏輯標誌:在TRUE中,將繪製數據中每個變量對應的半徑。

labels

用於標記圖的字符串向量。與 S 函數 stars 不同,如果 labels = NULL 則不會嘗試構造標簽。

locations

具有用於放置每個線段圖的 x 和 y 坐標的兩列矩陣;或長度為 2 的數字,此時所有圖都應疊加(對於“蜘蛛圖”)。默認情況下, locations = NULL ,線段圖將放置在矩形網格中。

nrow, ncol

給出當 locationsNULL 時要使用的行數和列數的整數。默認情況下, nrow == ncol ,將使用方形布局。

len

半徑或線段長度的比例因子。

key.loc

帶有單位鍵的 x 和 y 坐標的向量。

key.labels

用於標記單位鍵段的字符串向量。如果省略,則使用 dimnames(x) 的第二個組件(如果可用)。

key.xpd

單位鍵的剪輯開關(繪圖和標簽),請參閱par("xpd")

xlim

具有要繪製的 x 坐標範圍的向量。

ylim

具有要繪製的 y 坐標範圍的向量。

flip.labels

邏輯指示標簽位置是否應在圖表之間上下翻轉。默認為有點智能的啟發式。

draw.segments

合乎邏輯的。如TRUE畫一個線段圖。

col.segments

顏色向量(整數或字符,請參閱 par ),每個向量指定其中一個段(變量)的顏色。如果 draw.segments = FALSE 則忽略。

col.stars

顏色向量(整數或字符,請參閱 par ),每個向量指定其中一顆星星(案例)的顏色。如果 draw.segments = TRUE 則忽略。

col.lines

顏色向量(整數或字符,請參閱 par ),每個向量指定其中一條線(案例)的顏色。如果 draw.segments = TRUE 則忽略。

axes

邏輯標誌:是否將 TRUE 軸添加到圖中。

frame.plot

邏輯標誌:如果 TRUE ,則繪圖區域被加框。

main

情節的主要標題。

sub

情節的副標題。

xlab

x 軸的標簽。

ylab

y 軸的標簽。

cex

標簽的字符擴展因子。

lwd

用於繪圖的線寬。

lty

用於繪圖的線型。

xpd

邏輯或 NA 指示是否應進行裁剪,請參閱 par(xpd = .)

mar

par(mar = *) 的參數,通常選擇比默認情況更小的邊距。

...

更多參數,傳遞給 plot() 的第一次調用,請參見plot.default,如果 frame.plot 為 true,則傳遞給 box()

add

邏輯上,如果 TRUE 將星星添加到當前繪圖中。

plot

邏輯上,如果 FALSE ,則不會繪製任何內容。

細節

缺失值被視為 0。

每個星形圖或線段圖代表輸入 x 的一行。變量(列)從右側開始並逆時針繞圓圈旋轉。 (縮放的)列的大小通過從中心到星形上的點的距離或代表變量的線段的半徑來顯示。

僅生成一頁輸出。

返回兩列矩陣中繪圖的位置,當 plot = TRUE 時不可見。

注意

該代碼最初是由 David A. Andrews 繪製的空間星圖。

之前R1.4.1,縮放僅將最大值移動到 1,盡管記錄如下。

例子

require(grDevices)
stars(mtcars[, 1:7], key.loc = c(14, 2),
      main = "Motor Trend Cars : stars(*, full = F)", full = FALSE)
stars(mtcars[, 1:7], key.loc = c(14, 1.5),
      main = "Motor Trend Cars : full stars()", flip.labels = FALSE)

## 'Spider' or 'Radar' plot:
stars(mtcars[, 1:7], locations = c(0, 0), radius = FALSE,
      key.loc = c(0, 0), main = "Motor Trend Cars", lty = 2)

## Segment Diagrams:
palette(rainbow(12, s = 0.6, v = 0.75))
stars(mtcars[, 1:7], len = 0.8, key.loc = c(12, 1.5),
      main = "Motor Trend Cars", draw.segments = TRUE)
stars(mtcars[, 1:7], len = 0.6, key.loc = c(1.5, 0),
      main = "Motor Trend Cars", draw.segments = TRUE,
      frame.plot = TRUE, nrow = 4, cex = .7)

## scale linearly (not affinely) to [0, 1]
USJudge <- apply(USJudgeRatings, 2, function(x) x/max(x))
Jnam <- row.names(USJudgeRatings)
Snam <- abbreviate(substring(Jnam, 1, regexpr("[,.]",Jnam) - 1), 7)
stars(USJudge, labels = Jnam, scale = FALSE,
      key.loc = c(13, 1.5), main = "Judge not ...", len = 0.8)
stars(USJudge, labels = Snam, scale = FALSE,
      key.loc = c(13, 1.5), radius = FALSE)

loc <- stars(USJudge, labels = NULL, scale = FALSE,
             radius = FALSE, frame.plot = TRUE,
             key.loc = c(13, 1.5), main = "Judge not ...", len = 1.2)
text(loc, Snam, col = "blue", cex = 0.8, xpd = TRUE)

## 'Segments':
stars(USJudge, draw.segments = TRUE, scale = FALSE, key.loc = c(13,1.5))

## 'Spider':
stars(USJudgeRatings, locations = c(0, 0), scale = FALSE, radius  =  FALSE,
      col.stars = 1:10, key.loc = c(0, 0), main = "US Judges rated")
## Same as above, but with colored lines instead of filled polygons.
stars(USJudgeRatings, locations = c(0, 0), scale = FALSE, radius  =  FALSE,
      col.lines = 1:10, key.loc = c(0, 0), main = "US Judges rated")
## 'Radar-Segments'
stars(USJudgeRatings[1:10,], locations = 0:1, scale = FALSE,
      draw.segments = TRUE, col.segments = 0, col.stars = 1:10, key.loc =  0:1,
      main = "US Judges 1-10 ")
palette("default")
stars(cbind(1:16, 10*(16:1)), draw.segments = TRUE,
      main = "A Joke -- do *not* use symbols on 2D data!")

作者

Thomas S. Dye

參考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

symbols 另一種繪製星星和其他符號的方法。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Star (Spider/Radar) Plots and Segment Diagrams。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。