Как сделать многоканальное построение гиперспектральных данных в R?
Я пытался построить мультипанельные спектры среднего отражения и их стандартные отклонения, используя hyperSpec
пакет. Но я не получаю желаемых результатов. У меня есть 10 кластеров / групп, но построение графиков дает мне только 4 кластера. Кроме того, группы не приходят в надлежащем порядке. Я использую следующий код
library(hyperSpec)
data_1 <- read.csv("Multipanel_plotting.csv")
data <- data[-1]
wl <- seq (350, 2500,1)
cluster <- as.factor(data_1$clusters)
spectra <- new ("hyperSpec", spc = data, data = data.frame(cluster),
labels = list (.wavelength = "Wavelength (nm)",
spc = "Reflactance"), wavelength = wl)
#Multipanel plotting
qplotspc(aggregate(spectra, spectra$cluster, mean_pm_sd),
mapping = aes(x = .wavelength,
y = spc,
colour = cluster)) +
facet_grid(cluster ~.) + ggtitle("Spectra")
Это дает мне
Но я хочу иметь такой сюжет
Я предоставляю ссылку на диск Google из набора данных https://drive.google.com/file/d/1I_VlNbFTwi10fn3yNE4HknhpjreZKotV/view?usp=sharing
Любая помощь в этом отношении высоко ценится.
1 ответ
Я мог бы решить это самостоятельно, используя ggpubr
библиотека. Код выглядит следующим образом
library(hyperSpec)
library(ggpubr)
data_1 <- read.csv("Multipanel_plotting.csv")
data <- data_1[-1]
wl <- seq (350, 2500,1)
cluster <- as.factor(data_1$clusters)
spectra <- new ("hyperSpec", spc = data, data = data.frame(cluster),
labels = list (.wavelength = "Wavelength (nm)",
spc = "Reflactance"), wavelength = wl)
#Multipanel plotting
p <- qplotspc(aggregate(spectra, spectra$cluster, mean_pm_sd),
mapping = aes(x = .wavelength,
y = spc,
colour = cluster)) +
facet_grid(cluster~ .) + ggtitle("Spectra")+
theme_bw()
p %>% ggadd("mean", size = 0, color = "black")
Но единственная проблема в том, что теперь он дает мне 4 панели, в то время как их должно быть 10, а порядок графиков должен быть 1, 2, 3,...,10.