我有两个名为离群值和数据的数据框。
离群值只保留需要着色的行号。 数据有1000个数据。 它有两列名为 x 和 y 。 如果异常值中存在行号,我希望绘图中的点为红色,否则黑色
plot(data$x, data$y, col=ifelse(??,"red","black"))
应该有什么东西? 。
答案 0 :(得分:1)
我认为这可以通过在数据框中创建一个新的颜色列来实现:
data$color <- "black"
然后将异常值设置为不同的值:
data[outlier,"color"] <- "red"
我没有您的确切数据,但我认为我使用以下内容得到了类似于您想要的内容:
outlier <- c(1, 2, 7, 9)
data <- data.frame(x=c(1,2,3,4,5,6,7,8,9,10),
y=c(1,2,3,4,5,6,7,8,9,10))
data$color <- "black"
data[outlier,"color"] <- "red"
data
x y color
1 1 1 red
2 2 2 red
3 3 3 black
4 4 4 black
5 5 5 black
6 6 6 black
7 7 7 red
8 8 8 black
9 9 9 red
10 10 10 black
最后使用数据中的新值进行绘图:
plot(data$x, data$y, col=data$color)
答案 1 :(得分:1)
嗨,这种方式对我有用ifelse
,让我知道你的想法:
outlier <- sample(1:100, 50)
data <- data.frame(x = 1:100, y = rnorm(n = 100))
plot(
data[ ,1], data[ ,2]
,col = ifelse(row.names(data) %in% outlier, "red", "blue")
,type = "h"
)