使用这些数据
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
我可以制作这个情节
但点太小了。当我用代码
增加大小时p+scale_size_area(max_size=10)
点变大,但我松开了Porp为零的值。
我尝试将1添加到所有Porp值,但随后大小都相同。
如第2图所示,可以增加点的大小,但也包括Porp为0的点?
答案 0 :(得分:2)
您可以尝试使用scale_size_continuous
及其range
参数。例如。像这样的东西:
p + scale_size_continuous(range = c(2, 10))