理解這個繪圖功能當研究的線性模型,我曾經讀取用於繪製下述R腳本:混亂上中的R
plot(d[, 2], d[, 4], xlab="d[, 2]", ylab="d[, 4]", col=2 * (1 + (d[, 1] == "A")))
這裏d是一個數據集。令我困惑的是如何理解col=2 * (1 + (d[, 1] == "A"))
的目標是實現什麼?
理解這個繪圖功能當研究的線性模型,我曾經讀取用於繪製下述R腳本:混亂上中的R
plot(d[, 2], d[, 4], xlab="d[, 2]", ylab="d[, 4]", col=2 * (1 + (d[, 1] == "A")))
這裏d是一個數據集。令我困惑的是如何理解col=2 * (1 + (d[, 1] == "A"))
的目標是實現什麼?
實際上,它將根據第一列(d[,1]
)的值設置點的顏色(col
)。的值之間的特定映射可以由鍛鍊的可能性來得到:
d[,1]=="A"
是TRUE
如果第一列是「A」,否則FALSE
。
1+(d[,1]=="A")
取此TRUE/FALSE值並將其轉換爲數字(分別爲1和0),以便它可以添加到數字1.因此,如果第一列爲「A」,則爲2
,並且否則爲1
。如果第一列爲「A」,則爲4
,否則爲2
。
實際效果是,對應於第一列爲「A」的行的點以彩色4
繪製,其他所有點都以顏色2
繪製。
要確定這些數字指的是什麼顏色,它們是palette()
結果中的索引。
> palette()[4]
[1] "blue"
> palette()[2]
[1] "red"
因此,第一列爲「A」的點爲藍色,其他點爲紅色。
,我遲到了我的答案,但它可能仍然是有用的人......
參數col
決定對劇情點的顏色。
# Create some data to plot.
x=1:5
y=x^2
group = c("A", "A", "B", "B", "C")
group == "A" # Outputs a logical vector.
# [1] TRUE TRUE FALSE FALSE FALSE
2 * (1 + (group == "A")) # Changes logical vector to integers.
# [1] 4 4 2 2 2
# col parameter interprets integers as colors for each point in the plot.
plot(x, y, col=2 * (1 + (group == "A")), pch=20, cex=3)
也許還值得一提的是供給到'col'整數被用於含有一組默認顏色()'(由'調色板返回的向量的索引的元素,但也可以是復位由用戶)。 – 2012-03-08 20:10:50
@ JoshO'Brien好主意。我已經添加到我的答案。 – 2012-03-08 20:15:25