改变气球图中点的大小并保持零值

时间:2013-12-08 20:04:36

标签: r ggplot2

使用这些数据

Data <- structure(list(ObsVal = c(22L, 50L, 8L, 15L, 54L, 30L, 11L, 90L, 
6L, 53L, 9L, 42L, 72L, 40L, 60L, 58L, 1L, 20L, 37L, 2L, 50L, 
68L, 20L, 19L, 58L, 5L), Porp = c(0.0909090909090909, 0.02, 0, 
0, 0, 0, 0.272727272727273, 0.455555555555556, 0, 0.452830188679245, 
0.111111111111111, 0.404761904761905, 0, 0.025, 0.0166666666666667, 
0.120689655172414, 0, 0.1, 0.108108108108108, 0, 0, 0.0294117647058824, 
0, 0, 0.310344827586207, 0), Pred = c(26, 52, 6, 15, 39, 30, 
13, 85, 8, 62, 5, 48, 92, 52, 71, 68, 1, 28, 47, 1, 41, 106, 
29, 19, 39, 7)), .Names = c("ObsVal", "Porp", "Pred"), class = "data.frame", row.names = c(NA, 
-26L))

和此代码

require(ggplot2)
p <- ggplot(Data, aes(x=ObsVal, y=Pred, size=Porp))+
    geom_point()+
    geom_smooth(method=lm, color="red")+
    theme_bw()+
    guides(size=FALSE)
p

我可以制作这个情节enter image description here

但点太小了。当我用代码

增加大小时
p+scale_size_area(max_size=10)

点变大,但我松开了Porp为零的值。 enter image description here

我尝试将1添加到所有Porp值,但随后大小都相同。

如第2图所示,可以增加点的大小,但也包括Porp为0的点?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用scale_size_continuous及其range参数。例如。像这样的东西:

p + scale_size_continuous(range = c(2, 10))