向量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