R ggplot2:分别为一个类别着色

R ggplot2:分别为一个类别着色,r,ggplot2,R,Ggplot2,我正在生成一个散点图,其中一个类别是“其他”类别。我希望因子变量中的其他类别是任何颜色,但“其他”类别是灰色的。当我尝试使用scale\u color\u manual()函数时,它会给我一个错误,即类别太少。下面的示例使用iris数据 data(iris) p1 <- ggplot(iris, aes(x=Sepal.Length,y=Sepal.Width,color=Species)) + geom_point() p1 p2 <- p1 + scale_color_manua

我正在生成一个散点图,其中一个类别是“其他”类别。我希望因子变量中的其他类别是任何颜色,但“其他”类别是灰色的。当我尝试使用scale\u color\u manual()函数时,它会给我一个错误,即类别太少。下面的示例使用iris数据

data(iris)
p1 <- ggplot(iris, aes(x=Sepal.Length,y=Sepal.Width,color=Species)) + geom_point()
p1
p2 <- p1 + scale_color_manual(values=c("virginica"="gray"))
p2
数据(iris)
p1基于此功能,您可以获得
ggplot
颜色:

gg_color_hue <- function(n) {
  hues = seq(15, 375, length = n + 1)
  hcl(h = hues, l = 65, c = 100)[1:n]
}
然后重新编程要更改的颜色,并将其用于绘图:

cols[levels(iris$Species)=="virginica"]="gray"
p2 <- p1 + scale_color_manual(values=cols)
cols[levels(iris$物种)=“virginica”]=“gray”
然而,p2不能回答您的问题或原始问题。经典的堆栈溢出。您始终可以在顶部添加另一层
+geom_point(data=iris[iris$Species=='virginica',],color='gray')
,但图例不正确
cols[levels(iris$Species)=="virginica"]="gray"
p2 <- p1 + scale_color_manual(values=cols)