Я хотел бы построить некоторые данные с помощью ggplot2.Мои данные изначально в широкоформатном формате, и поэтому я хотел бы сначала преобразовать их в длинный формат.
Каким-то образом «melt» создает таблицу, которую я не могу использовать с ggplot2 по желанию.Я предполагаю, что я использую это неправильно, но я, к сожалению, не мог выяснить, как решить проблему.
Я хотел бы построить переменные s1 и s2 в зависимости от длины волны.Это минимальный наполовину рабочий пример:
#Generate fake data:
data <- cbind(wavelength = seq(1,10), s1 = seq(21,30), s3 = seq(41,50))
#Convert to long format:
#install.packages("reshape2")
library(reshape2)
datLong <- melt(data = data,
id.vars = c("wavelength"),
measure.vars = c("s1","s2"),
variable.name = "variable",
value.name = "value")
#install.packages("ggplot2")
library("ggplot2")
#The following delivers the error "Error: Attempted to create layer with no stat."
ggplot(data = datLong, mapping = aes(x = wavelength, y = value)) + layer(geom = "point")
#This plots something, but it seems that "melt" produced a wrong format as wavelength, s1, s2 are on the x-axis.
ggplot() + layer(data = datLong, mapping = aes(x=Var2, y=value), geom = "point", stat = "identity", position_dodge(width = 3))
Было бы очень здорово, если бы вы могли объяснить проблему.
Большое спасибо!