2016-09-14 77 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

沒有一個代表數據集,我的答案不起作用,這將是很難排除故障。 –