plot возвращает прерывистые линии (с пробелами) в R при использовании пакета очков - PullRequest
0 голосов
/ 30 августа 2018

ОБНОВЛЕНИЕ О РЕШЕНИИ:
установить пробелы аргумента = F в вашей команде plot ()
library(spectacles) spectra(your_data) <- sr_no ~ ... ~ 350:2500 # turn your data frame to Spectra* object with the spectrum range of your interest plot(your_data, gaps = F) # return plot with no gaps or line discontinuously

#

Мне нужно работать с объектом Spectra * и строить с кодом, похожим на этот, просто меняя встроенный фрейм данных "australia" на мои данные:

library(spectacles)    
data(australia)     
spectra(australia) <- sr_no ~ ... ~ 350:2500    
s <- cut(australia, wl =c(-1*450:500, -1*1800:2050))    
plot(s)    

Мой график в R вернулся с перерывами, как показано на рисунке ниже. Размер фрейма данных составляет 150 строк, 3156 столбцов. Проблема остается, когда я уменьшил df до 1800 столбцов.

У кого-нибудь были такие же проблемы? Не могли бы вы предложить решение? Огромное спасибо заранее!

Plotting wavenumber vs abs value

1 Ответ

0 голосов
/ 31 августа 2018

Пожалуйста, потерпите меня, потому что визуально объяснить мой вопрос намного проще, чем оставить комментарий. Вы хотите удалить эти данные или вы хотите сократить часть данных? См. Примеры ниже.

s1 <- cut(australia, wl =c(-1*450:500, -1*1800:2050))
plot(s, gap=TRUE)

Spectral minus 450:500 & 1800:2050

В качестве альтернативы вы можете использовать пример для файла справки в R.

library(ggplot)
data(australia)
spectra(australia) <- id ~ ... ~ 500:1800 # changed the range

r <- melt_spectra(australia)
australia$fact <- sample(LETTERS[1:3], size = nrow(australia), replace = TRUE)
r <- melt_spectra(australia, attr = 'fact')
p <- ggplot(r) + geom_line(aes(x=wl, y=nir, group=id, colour=fact)) + theme_bw()
print(p)

Spectral image from 500:1800

В качестве альтернативы вы можете взять часть анализа.

s <- as(cut(australia, wl = 1*450:550), 'Spectra') 
plot(s)

subset of spectra

...