R语言 改变ggplot中特定点的颜色[重复]

kuhbmx9i  于 2023-02-26  发布在  其他
关注(0)|答案(2)|浏览(209)
    • 此问题在此处已有答案**:

r - ggplot2 - highlighting selected points and strange behavior(3个答案)
2天前关闭。
我想改变 Dataframe 中特定点的颜色,注意我没有绘制条件。

library(ggplot2)
colpf <- c(0,0,0,1,1,1,2,2,2)
coldf <- c(0,1,2,0,1,2,0,1,2)
x <- seq(0,8,1)
y <- seq(0,8,1)
df <- data.frame(colpf,coldf,x,y)

ggplot(data = df) +
  geom_point(aes(x=x,y = y))

我想画一个对应于colpf = 1和coldf = 1的点,比如红色,在这种情况下,我相信它是点(4,4),我相信这会有一个简单的解,但是我的头脑似乎不能理解它,谢谢。

axr492tv

axr492tv1#

创建一个指示符变量,告诉如果条件满足。Map颜色审美到该变量,并调整颜色与scale_*层。

library(ggplot2)
colpf <- c(0,0,0,1,1,1,2,2,2)
coldf <- c(0,1,2,0,1,2,0,1,2)
x <- seq(0,8,1)
y <- seq(0,8,1)
df <- data.frame(colpf,coldf,x,y)

i <- with(df, colpf == 1 & coldf == 1)
i
#> [1] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE

ggplot(data = df) +
  geom_point(aes(x = x, y = y, color = i), show.legend = FALSE) +
  scale_color_manual(values = c(`FALSE` = "black", `TRUE` = "red"))

创建于2023年2月23日,使用reprex v2.0.2

noj0wjuj

noj0wjuj2#

尽管Rui Barradas的回答更优雅,但如果你不想调节或无法确定特定的条件,另一种选择是通过索引特定的兴趣点来实现:

ggplot() +
  geom_point(data = df[-5,], aes(x = x, y = y), show.legend = FALSE) +
  geom_point(data = df[5,], aes(x = x, y = y), color = "red", show.legend = FALSE)

相关问题