2016-09-14 76 views
0

我正在尝试更改NA值的点大小。无法更改geom_point中na.values的点大小

 ggplot(dataframe, aes(col1, col2)) + 
geom_text(aes(label=col4),size=0.5, hjust=0, vjust=0) + 
geom_point(aes(color = col3), size=1) 

This is what I get:

我需要的灰色(NA),以显示较小的和白色的颜色。

+1

请在您的问题中包含[可重现的示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。请注意,您需要将变量映射到'size'才能使用'scale_size_manual'。这意味着在'aes'里面移动'size'。一旦你这样做,看看'scale_size_manual'的文档以获取如何使用它的例子。 – aosmith

+0

我正在尝试对我的数据框进行二次采样,以给出一个适当的可重现示例。但是,尽管我可以用完整的数据运行一个情节,但是我不能在子集中运行。 –

回答

0

有几种方法可以做到这一点,最简单的方法可能是调用geom_point两次,根据该列值进行子集化。

library(ggplot2) 
set.seed(12341234) 
dataframe <- data.frame(col1 = rnorm(10, mean = 2, sd = 3), 
         col2 = rnorm(10, mean = 4, sd = 2), 
         col3 = c(rep("A", 4), rep("B", 4), NA, NA)) 

ggplot(dataframe[!is.na(dataframe$col3),], 
     aes(x = col1, 
      y = col2)) + 
    geom_point(aes(color = col3), 
      size = 4) + 
    geom_point(data = dataframe[is.na(dataframe$col3),], 
      color = "blue", 
      size = 8) + 
    scale_color_manual(breaks = c("A", "B"), 
        values = c("black", "red")) 

enter image description here

注意这将陷入困境的传说(如果你需要一个)。

另一种选择是用“NA”等替代NA值。

+0

谢谢,但也不适合我的数据集。我得到一个错误:错误在'[.default'(dataframe $ col3,: 维数不正确 –

+0

没有一个代表数据集,我的答案不起作用,这将是很难排除故障。 –