r - 为ggplot2中的每一行分配颜色

标签 r ggplot2 linegraph

大家好, 我正在尝试使用 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))

enter image description here

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

我也可以在不使用 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)

enter image description here

最佳答案

以下是一些可能有用的快捷方式:

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')

enter image description here

library(reshape2)
library(ggplot2)

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

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

enter image description here

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

enter image description here

关于r - 为ggplot2中的每一行分配颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23177365/

相关文章:

Excel根据单元格的颜色设置折线图的颜色

r - 如何在R中绘制堆栈系列线图?

r - 仅使用 tidyverse 将列中的类别字符串提取到列中。在R中

R多列之间的多热编码

r - R 中的 ACF 组

r - 使用Quarto,我如何查看导致revealjs 演示的中间md 文件?

r - ggplot多分组栏

r - 如何在ggplot中创建构面,除非使用不同的变量

r - R 中的星图

javascript - 折线图路径中不必要的间隙