ggplot2: 绘制两个大小美学参数

3

根据我在stackoverflow上找到的信息(例如此答案有关于在ggplot中使用两种比例颜色渐变),目前可能还无法在ggplot2中实现。

我想创建一个气泡图,其中包含两个大小审美元素,其中一个始终比另一个大。这个想法是展示比例和绝对值。现在我可以通过比例来着色点,但我更喜欢多气泡。在Excel中,这相对简单。Excel multiple aesethetic example on mtcarshttp://i.stack.imgur.com/v5LsF.png)是否有一种方法可以在ggplot2(或基本库)中复制这个图形?


请问您能否提供数据,以便创建一个可重现的示例? - alexwhan
抱歉,它是mtcars数据集,X轴上是mpg,Y轴上是wt。黑色圆圈的大小表示hp/2,白色圆圈的大小表示disp - Hugh
1个回答

5
这里有一个选项。在两个geom_point层中映射size应该可以实现。不过,在ggplot中为气泡图设置正确的大小有点麻烦。
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point(aes(size = disp), shape = 1) +
  geom_point(aes(size = hp/(2*disp))) + scale_size_continuous(range = c(15,30))

为使其看起来尽可能像您的示例,请添加theme_bw():
P <- p + theme_bw()

scale_size_continuous() 是一个需要不断调整直到满意的函数 - 至少在我的经验中是这样的。如果有更好的想法,我很乐意听听。

enter image description here

啊,我忘记在aes()中加上size = 了!谢谢! - Hugh
我该如何实现@agstudy的代码?我已经尝试过p + theme(theme_bw()) - Hugh
@flodel - 当涉及到绘图问题时,我通常会尝试将讨论限制在概念的基础知识上 - 希望这样更不容易混淆。但是theme_bw无疑接近于原始绘图。 - alexwhan
我们如何给这两个变量都打上标签? - sheriff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接