-2
我需要繪製一個光譜數據矩陣,使用R中的ggplot2
(或lattice
)軟件包對兩行進行2個因子變量分組,因爲它具有分面功能。在R中繪製帶ggplot2的光譜數據(矩陣)
考慮從pls
包具有光譜數據的數據幀DS
(矩陣)DS$NIR
:
library(pls)
data(gasoline)
DS <-gasoline
讓我們添加一些分組變量:
set.seed(0)
DS$Type <- as.factor(sample(c("Training set","Validation set","Others"),
nrow(DS),
replace = TRUE))
DS$Group <- cut(DS$octane,
breaks = c(80,86,88,90),
labels = c("Low","Medium","High"))
,看看數據:
str(DS)
'data.frame': 60 obs. of 4 variables:
$ octane: num 85.3 85.2 88.5 83.4 87.9 ...
$ NIR : AsIs [1:60, 1:401] -0.050193 -0.044227 -0.046867 -0.046705 -0.050859 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr "1" "2" "3" "4" ...
.. ..$ : chr "900 nm" "902 nm" "904 nm" "906 nm" ...
$ Type : Factor w/ 3 levels "Others","Training set",..: 1 2 3 3 1 2 1 1 3 3 ...
$ Group : Factor w/ 3 levels "Low","Medium",..: 1 1 3 1 2 1 3 3 3 3 ...
我需要繪製每一條路作爲單獨的行DS$NIR
。 X軸值可以通過提取:
x <- as.numeric(gsub(" nm", "", dimnames(DS$NIR)[[2]]))
- 的線的顏色應取決於因子
Group
的水平。 - 這些線條應該是半透明的。
- 每個顏色組(即因子
Group
的每個級別)都應該有一個不透明的實線,表示該組的平均值(或中值)。 - 因子
Type
的每個級別應繪製在一個單獨的方面。
我發現了一個example,光譜數據是如何繪製的,但對我來說理解和修改代碼非常困難。
看看在hyperSpec包,它有許多的插圖詳細的例子 – baptiste