使用眼镜包时,图返回R中的不连续线(带间隙)

时间:2018-08-30 02:50:34

标签: r spectra

有关解决方案的更新:
在plot()命令中设置参数差距= F
            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 *对象并使用类似的代码进行绘图,只是通过我的数据更改内置的“澳大利亚”数据框:

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 :(得分:0)

请多多包涵,因为通过可视化方式解释我的问题比发表评论要容易得多。您要删除此数据还是要剪切数据的部分?请参见下面的示例。

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