8
我想达到以下结果:整数变量的气泡图,其中最大气泡的直径为1(在x或y轴刻度上)?
- 重新调节气泡的大小,使得所述最大气泡具有直径为1的 (上取具有在x 轴和y轴的多个压缩级)。
- 重新调节气泡的大小,使得最小气泡的直径为1毫米
- 具有与第一和最后一个点的最小非零 频率和最大频率的图例。
我已经能够做的最好的如下,但我需要一个更通用的解决方案,其中计算maxSize的值而不是硬编码。如果我是在传统的R图中做的话,我会使用par(“pin”)来计算出绘图区域的大小并向后工作,但我无法弄清楚如何使用ggplot2来访问这些信息。有什么建议么?
library(ggplot2)
agData = data.frame(
class=rep(1:7,3),
drv = rep(1:3,rep(7,3)),
freq = as.numeric(xtabs(~class+drv,data = mpg))
)
agData = agData[agData$freq != 0,]
rng = range(agData$freq)
mn = rng[1]
mx = rng[2]
minimumArea = mx - mn
maxSize = 20
minSize = max(1,maxSize * sqrt(mn/mx))
qplot(class,drv,data = agData, size = freq) + theme_bw() +
scale_area(range = c(minSize,maxSize),
breaks = seq(mn,mx,minimumArea/4), limits = rng)
这里是什么样子至今:
你是如何在你的榜样到达 “20” 为'maxSize'? – A5C1D2H2I1M1N2O1R2T1 2012-08-16 08:02:09