ggplot中二元运算符的非数字参数

时间:2017-06-08 07:39:56

标签: r ggplot2

这让我发疯了...抱歉,如果它是微不足道的。我搜索但没有找到帮助。首先是一个可重复的例子

df = data.frame(idx = c(1,2,3,4,5), label=c(0,0,1,1,0), 
 filter = c(1,1,0,1,1), values = c(0.1, 0.3, 1.2, 1.7, 2.4))


ggplot (df, aes(x = df$idx, y = df$values, size = as.factor(df$label*filter), 
color = as.factor(df$label*filter)))+geom_point()+
scale_colour_manual(name = "Duplicates (J/N)", labels = c("Nein", "Ja"), 
values = c("red", "blue")) + scale_size_manual(name = "Duplicates (J/N)", 
labels = c("Nein", "Ja"), values = c("red", "blue"))

当我运行此示例时,我收到错误

Error in coords$size * .pt : non-numeric argument to binary Operator

现在通常在ggplot中,当你得到太多+或者不够+时会出现这个错误。但这似乎并非如此。至少对我来说并不明显。

这是有效的(没有scale_size_manual

ggplot (df, aes(x = df$idx, y = df$values, size = as.factor(df$label*filter), 
            color = as.factor(df$label*filter)))+geom_point()+
    scale_colour_manual(name = "Duplicates (J/N)", labels = c("Nein", "Ja"), 
                  values = c("red", "blue")) 

有人发现错误吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

这是因为您传递给scale_size_manual c的值("红色","蓝色")是字符而不是数字值。 scale_size需要数值。