这让我发疯了...抱歉,如果它是微不足道的。我搜索但没有找到帮助。首先是一个可重复的例子
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"))
有人发现错误吗?
提前感谢您的帮助!
答案 0 :(得分:2)
这是因为您传递给scale_size_manual c的值("红色","蓝色")是字符而不是数字值。 scale_size需要数值。