ggplot2:单独分类颜色

时间:2016-09-15 23:02:27

标签: r ggplot2

我正在生成一个散点图,其中一个类别是“其他”类别。我希望我的因子变量中的其他类别是它们的任何颜色,但“其他”类别是灰色的。当我尝试使用scale_color_manual()函数时,它给出了我的类别太少的错误。以下示例使用虹膜数据。

xp_logevent 55555,'Print Job Requested',Informational
  

错误:手动刻度值不足。需要3个但只提供1个。

是否可以只改变一个类别的颜色,而不考虑因子中的其他值?我宁愿不为所有三个类别选择颜色,因为我实际使用的数据有30-40个类别,其中一个一直是“其他”。

1 个答案:

答案 0 :(得分:1)

基于this post,您可以使用此功能获得ggplot种颜色:

gg_color_hue <- function(n) {
  hues = seq(15, 375, length = n + 1)
  hcl(h = hues, l = 65, c = 100)[1:n]
}

所以在你的情况下:

cols = gg_color_hue(length(levels(iris$Species)))

然后重新编程想要更改的颜色并将其用于绘图:

cols[levels(iris$Species)=="virginica"]="gray"
p2 <- p1 + scale_color_manual(values=cols)

enter image description here