首页 > 解决方案 > 如何在R中的散点图上为数据集中范围内的点着色

问题描述

我需要从导入的数据中制作一个颜色编码的散点图,其中 0 到 4 之间的值是红色的。我尝试了子集,但我认为我没有正确使用它。这是我尝试使用的代码

DAT1 = log(DAT, 10)
data.frame(DAT1)
FSC = DAT1$FSC.HLin
RED = DAT1$RED.V.HLin
plot(FSC, RED)
red = subset(DAT1, FSC.HLin<4 & FSC.HLin>0)
points(red)
col = 'red'

标签: rcolorssubsetscatter-plot

解决方案


这是一种用不同颜色绘制所选点的方法ifelse。将图形参数设置col为值"red""black"取决于 x 轴值。

FSC <- -5:10
RED <- seq_along(FSC)
plot(FSC, RED, col = ifelse(FSC > 0 & FSC < 4, "red", "black"))

在此处输入图像描述

另一种等效的方法是预先创建一个颜色向量。在下面的代码中,我还将点字符更改为实心圆圈,尽管这不是问题。并且直接使用数据集DAT1而不创建新的向量FSCRED.

DAT1 <- data.frame(FSC.HLin = FSC, RED.V.HLin = RED)
col <- with(DAT1, ifelse(FSC.HLin > 0 & FSC.HLin < 4, "red", "black"))
pch <- with(DAT1, ifelse(FSC.HLin > 0 & FSC.HLin < 4, 16, 1))
plot(RED.V.HLin ~ FSC.HLin, data = DAT1, col = col, pch = pch)

在此处输入图像描述


推荐阅读