2010-03-04 82 views
1

我在R(带有ggplot2)中有散点图。数据有一个数字列(我们称之为bin),它可以包含各种整数值或为空。如何为不同颜色的点着色,如果数据属性不为空

我想使用与其他值不同的非空bin值对点进行着色。我不希望每个箱子的颜色都有一种颜色,那会太嘈杂。简而言之,对于那些带有非空垃圾箱而其他垃圾箱为黑色的人来说,就是红色。

qplot有colour属性,但我不知道该如何表达喜欢colour = bin != null ? "red" : "black"

+1

我想你的意思是缺少,而不是空。 – hadley 2010-03-06 13:50:40

回答

2

的情况你可以定义色彩第一:

color <- rep("black", length(bin)) 
color[is.null(color)] <- "red" 

否则,你可以使用ifelse语句:

colour=ifelse(is.null(bin), "red", "black") 
+0

第一种方法使用一个修改:使用is.na而不是is.null 一个小的评论是R不解释颜色文字(即“红色”为红色,“黑色”为黑色),但是通过价值自动降价,所以其他两种色调最终在图表中。我想这是可以修复的,如果我阅读更多的语法。 – wishihadabettername 2010-03-04 02:53:10

+0

尝试'+ scale_colour_identity()' – hadley 2010-03-06 13:51:00

相关问题