Hello People,我正在尝试使用geom_line函数在R中创建折线图。我想为每一行指定特定颜色,但我无法这样做。 当我尝试手动分配颜色时,我将颜色名称作为变量,而在图例中,它们按字母顺序排列。 如果我不这样做,我根本就没有任何颜色。 我也在网上环顾四周,发现应该有一个分组变量,通过它可以分配颜色。 不幸的是,在我的数据集中,每列对应一个不同的变量。 我不确定转置数据集是否有效,因为我试图在x轴上对这些变量绘制> 2000个值。 我想我在这里错过了一些非常简单的东西。

ggplot(data=data, aes(xvar))+
geom_line(aes(y=var1))+
geom_line(aes(y=var2))+
geom_line(aes(y=var3))+
geom_line(aes(y=var4))

在此输入图像描述

如果之前已经回答过,请随时将其重定向到另一个部分。 任何帮助将不胜感激。

我也可以手动完成而不使用ggplot2函数,其代码如下:

plot(data$Wavelength,data$var1,col="green")
par(new=T)
plot(data$wavelength,data$var2,col="red")
par(new=T)
plot(data$wavelength,data$var3,col="purple")
par(new=T)
plot(data$wavelength,data$var4,col="black")
par(new=F)

在此输入图像描述

===============>>#1 票数:7 已采纳

这里有一些可能有用的快捷方式:

dat <- data.frame(wave = 1:100,
                  var1 = sort(rnorm(100)),
                  var2 = sort(rnorm(100, 1)),
                  var3 = sort(rnorm(100, 2)))

plot(dat$var3, col = 'blue', type = 'l')
lines(dat$var2, col = 'red')
lines(dat$var1, col = 'green')

在此输入图像描述

library(reshape2)
library(ggplot2)

dat.m <- melt(dat, id.vars = 'wave')

ggplot(dat.m, aes(wave, value, colour = variable)) + geom_line()

在此输入图像描述

ggplot(dat.m, aes(wave, value, colour = variable)) + geom_line() + 
  scale_colour_manual(values = c('pink','orange','white'))

在此输入图像描述

  ask by VGu translate from so

未解决问题?本站智能推荐: