矢量中的颜色点不同R.

时间:2015-02-11 08:24:44

标签: r plot point

有一个看起来像

的向量
c(50,-20,30,40,-70,3,9,-8,9)->h

有一个我有颜色的矢量

c("#ADCD00","#008B00","#00FF00","#ADCD00")->cols

我知道点1-3有第一种颜色,然后4有第三种颜色,5有2种颜色,其余6种有最后颜色。

如何在没有硬编码的情况下告诉R绘制这些颜色的点?这样我就可以在颜色向量中索引

plot(h,col=cols[1])

显然将所有颜色都涂成相同的颜色

2 个答案:

答案 0 :(得分:0)

创建一个颜色地图矢量,将h中的每个点与cols中的颜色索引相关联。

它与h的长度相同,以NA值初始化:

> cmap = rep(NA,length(h))

现在按照你的方案填写:

> cmap[1:3]=1
> cmap[4]=3
> cmap[5]=2
> cmap[6:length(h)]=4
> cmap
[1] 1 1 1 3 2 4 4 4 4

然后绘制,通过颜色图查找颜色:

> plot(h, col=cols[cmap])

我不确定你所关注的“不硬编码”的确切位置,因为我构建的彩色地图矢量必须存在于某个地方,并且必须在某种意义上“硬编码”。你的意思是没有希望看到:

> plot(h, col=c("#123456","#123456",.....etc...))

将颜色硬编码到plot函数中?

答案 1 :(得分:0)

这是一个ggplot2解决方案。您可能希望选择不同的颜色,以使这些点区分更多

h <- c(50,-20,30,40,-70,3,9,-8,9)
xaxis <- seq(1,9)
color <- c("one", "one", "one", "third", "second", "fourth", "fourth", "fourth", "fourth")
df <- data.frame(x = xaxis, y = h, color = color)
df
ggplot(df, aes(x=x, y=y, fill=color)) +
  geom_point(size = 6, shape = 22) +
  scale_fill_manual(values = c("#ADCD00","#008B00","#00FF00","#ADCD00"), guide = FALSE) +
  ggtitle("Points Colored Individually")

enter image description here