使用scale_size_area(ggplot2)将大小为“ 0”的点绘制为完全不存在

ble*_*lep 1 plot r ggplot2

我正在尝试按簇绘制条件的气泡图,其中每个气泡的大小由第三个“百分比”变量设置。根据ggplot2文档,我认为我应该能够通过scale_size_area做到这一点。我不清楚为什么这行不通,并且当%= 0时,我仍然看到很小的一点。(如果我误会了,我也希望能找到一种解决方法。在我的真实数据中,区分0和非常接近0很重要。)

ex <- data.frame(Condition=rep(c("ex1","ex2","ex3","ex4"),4),
                 Cluster=c(rep(1,4),rep(2,4),rep(3,4),rep(4,4)),
             Percent=c(0,0,0,1,0.25,0,0.25,0.5,1,0,0,0,0.25,0.25,0.25,0.25))
ggplot(ex, aes(Cluster, Condition, size=Percent))+ 
           geom_point(color = "blue")+ scale_size_area(max_size=20)
Run Code Online (Sandbox Code Playgroud)

样例

luk*_*keA 5

尝试

library(ggplot2)
ex <- data.frame(Condition=rep(c("ex1","ex2","ex3","ex4"),4),
                 Cluster=c(rep(1,4),rep(2,4),rep(3,4),rep(4,4)),
             Percent=c(0,0,0,1,0.25,0,0.25,0.5,1,0,0,0,0.25,0.25,0.25,0.25))
ggplot(ex, aes(Cluster, Condition, size=ifelse(Percent==0, NA, Percent))))+ 
           geom_point(color = "blue")+ scale_size_area(max_size=20)
Run Code Online (Sandbox Code Playgroud)

使用size=ifelse(Percent==0, NA, Percent))代替size=Percent将从绘图中排除这些点。