向量R中的色点

向量R中的色点,r,plot,point,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]) 显然,所有颜色都是相同的创建一个颜色映射向量,该向量将h中的每个点与

有一个向量看起来像

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

显然,所有颜色都是相同的

创建一个颜色映射向量,该向量将
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...))

将颜色硬编码到
绘图
功能中?

这里有一个
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")
h