R GGPLOT2-线条的颜色
我需要设置五种颜色,从黄色到橙色到红色,在一个图表中有6行。我试过名字和十六进制数,但它们似乎不起作用 示例数据: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
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,我看到了你上面的评论,很快意识到你是正确的,长格式会更好。谢谢你的观察。该死的,这很有用!谢谢