我有一个数据框,其中为列中的每个点指定了颜色:
d<-data.frame(x=1:10,y=1:10,col=c(rep("red",n=5),rep("green",n=5)))
d$col<-as.character(d$col)
ggplot(data=d,aes(x=x,y=y,colour=col))+geom_point()
如您所见,颜色不会被解释为颜色,而是一组,
ggplot可以处理这种情况吗?
答案 0 :(得分:5)
之前可能已经提出并回答了这个问题。但是,设置数据还有另一个问题。
OP正在通过
创建数据d <- data.frame(x = 1:10,
y = 1:10,
col = c(rep("red", n = 5), rep("green", n = 5)))
这导致两种颜色的交替
d
# x y col
#1 1 1 red
#2 2 2 green
#3 3 3 red
#4 4 4 green
#5 5 5 red
#6 6 6 green
#7 7 7 red
#8 8 8 green
#9 9 9 red
#10 10 10 green
原因是n
不是rep()
函数的已定义参数。根据{{1}},有效参数为?rep
,times
和lenght.out
。
可能OP意味着
each
导致连续的行以相同的颜色着色:
d <- data.frame(x = 1:10,
y = 1:10,
col = c(rep("red", 5), rep("green", 5)))
顺便说一下,
d
# x y col
#1 1 1 red
#2 2 2 red
#3 3 3 red
#4 4 4 red
#5 5 5 red
#6 6 6 green
#7 7 7 green
#8 8 8 green
#9 9 9 green
#10 10 10 green
可以更清楚地写成
col = c(rep("red", 5), rep("green", 5))
有了这个,下面的情节陈述
col = rep(c("red", "green"), each = 5)
生成相同的图表:
答案 1 :(得分:0)
刚刚发现了:
颜色应作为单独的矢量给出,与数据无关
ggplot(data=d,aes(x=x,y=y))+geom_point(colour=d$col)