我正在生成一个散点图,其中一个类别是“其他”类别。我希望我的因子变量中的其他类别是它们的任何颜色,但“其他”类别是灰色的。当我尝试使用scale_color_manual()函数时,它给出了我的类别太少的错误。以下示例使用虹膜数据。
xp_logevent 55555,'Print Job Requested',Informational
错误:手动刻度值不足。需要3个但只提供1个。
是否可以只改变一个类别的颜色,而不考虑因子中的其他值?我宁愿不为所有三个类别选择颜色,因为我实际使用的数据有30-40个类别,其中一个一直是“其他”。
答案 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)