Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R GGPLOT2-线条的颜色_R_Graph_Colors_Ggplot2_Line - Fatal编程技术网

R GGPLOT2-线条的颜色

R GGPLOT2-线条的颜色,r,graph,colors,ggplot2,line,R,Graph,Colors,Ggplot2,Line,我需要设置五种颜色,从黄色到橙色到红色,在一个图表中有6行。我试过名字和十六进制数,但它们似乎不起作用 示例数据: Year EF0 EF1 EF2 EF3 EF4 EF5 1950 13 83 71 26 7 0 1951 25 88 82 22 5 0 1952 24 80 72 38 20 0 1953 66 160 143 46 22 5 1954 91 226 193 49 11 0 1955 169 21

我需要设置五种颜色,从黄色到橙色到红色,在一个图表中有6行。我试过名字和十六进制数,但它们似乎不起作用

示例数据:

 Year EF0 EF1 EF2 EF3 EF4 EF5
 1950  13  83  71  26   7   0
 1951  25  88  82  22   5   0
 1952  24  80  72  38  20   0
 1953  66 160 143  46  22   5
 1954  91 226 193  49  11   0
 1955 169 217 167  32  12   6
 1956 125 184 149  38  21   1
 1957 218 305 238  74  25   7
 1958 145 233 154  39   4   1
 1959 143 264 157  37  11   0
 1960 128 262 175  47   6   1
当前GGPLOT2代码

ggplot(dTorYear, aes(x=dTorYear$Year))+ 
  geom_line(aes(y = dTorYear$EF0, colour = "var5")) + 
  geom_line(aes(y = dTorYear$EF1, colour = "var4")) +
  geom_line(aes(y = dTorYear$EF2, colour = "var3")) +
  geom_line(aes(y = dTorYear$EF3, colour = "var2")) +
  geom_line(aes(y = dTorYear$EF4, colour = "var1")) +
  geom_line(aes(y = dTorYear$EF5, colour = "var0")) +
  xlab("Year") +
  ylab("Tornado Count")

任何帮助都将不胜感激

这个
RColorBrewer
包非常适合这样的东西。它将沿定义的渐变为您生成十六进制数。然而,您的代码中的主要问题是我们的颜色声明的位置,因为它是
geom_line
而不是
aes
的一部分

将数据转换为长格式会使一切变得更容易

require(ggplot2)
require(reshape2)
require(RColorBrewer)

cols<-colorRampPalette(c('yellow','red'))(ncol(dTorYear)-1)

dat <- melt(dTorYear, id=c("Year"))

ggplot(dat)+
  geom_line(aes(x = Year, y = value, colour = variable)) +
  xlab("Year") +
  ylab("Tornado Count")+
  scale_colour_manual(values=c(cols))
require(ggplot2)
要求(2)
要求(RColorBrewer)

cols如果融化数据帧,可以简化ggplot调用并获得图例

# your data
dTorYear <- read.table(text=' Year EF0 EF1 EF2 EF3 EF4 EF5
 1950  13  83  71  26   7   0
 1951  25  88  82  22   5   0
 1952  24  80  72  38  20   0
 1953  66 160 143  46  22   5
 1954  91 226 193  49  11   0
 1955 169 217 167  32  12   6
 1956 125 184 149  38  21   1
 1957 218 305 238  74  25   7
 1958 145 233 154  39   4   1
 1959 143 264 157  37  11   0
 1960 128 262 175  47   6   1', header=T)


library(reshape2)
library(ggplot2)

# color sequence, already posted by user 'charles'
cols <- colorRampPalette(colors=c('yellow', 'red'))(ncol(dTorYear)-1)

# molten data.frame
plot_df <- melt(dTorYear, id.var='Year')

# plot!
ggplot(plot_df, aes(x=Year, y=value, color=variable)) + 
  geom_line() + 
  scale_color_manual(values=cols)
#您的数据

dTorYear我看不出您试图在代码中设置颜色值的地方。你漏掉那部分了吗?你在哪里指定了十六进制颜色?我把十六进制颜色放在var0 var1等的地方,它们以各种奇怪的颜色出现,这些颜色与十六进制无关code@Methexis,在
ggplot
中,通常更容易使用“长”格式的数据。关于这个话题,有很多帖子,请参见。同时检查
scale\u color\u手册
和其他
scale\u color\u xxx
功能。如果您有答案,请接受arvi1000或我本人,因为我们有相同的解决方案。不管是哪一种,这个问题都得到了正式的回答。啊,我知道这很有效,但我想我现在需要手动输入一个图例,因为这超过了GGPLOT2为我做的吗?@Methexis,你可以看到这简化了长格式的代码。哦,好了。刚刚发布了同样的消息solution@arvi1000,我看到了你上面的评论,很快意识到你是正确的,长格式会更好。谢谢你的观察。该死的,这很有用!谢谢