有关解决方案的更新:
在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列时,问题仍然存在。
有人遇到过同样的问题吗?您能提出解决方案吗?提前非常感谢您!
答案 0 :(得分:0)
请多多包涵,因为通过可视化方式解释我的问题比发表评论要容易得多。您要删除此数据还是要剪切数据的部分?请参见下面的示例。
s1 <- cut(australia, wl =c(-1*450:500, -1*1800:2050))
plot(s, gap=TRUE)
或者,您可以将示例用于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)
或者,您可以进行部分分析。
s <- as(cut(australia, wl = 1*450:550), 'Spectra')
plot(s)