在 R 中沿底部边缘对齐四个 'nested' 圆圈

Aligning four 'nested' circles along their bottom edges in R

我正在尝试创建一个嵌套四个圆圈的视觉效果:

圆的大小取决于相对于最大圆的 ratio/numeric 值。

我发现这个 post 似乎为两个对齐的圆圈提供了解决方案:Bubble Chart with bubbles aligned along their bottom edges

但是,我是 R 的新手,不确定如何继续实现所需的四个对齐圆。

示例输入数据:

d <- read.table(text = "circle:x
Circle1:340000
Circle2:5000
Circle3:1100
Circle4:340", header = TRUE, sep = ":")

基于输入数字的四个对齐圆的期望输出:

将面积转换为半径,然后使用ggforce画圆:

library(ggforce)

#convert area to R
d$r <- sqrt(d$x / pi)
d$x0 <- max(d$r) / 2
d$y0 <- d$r

ggplot(d, aes(x0 = x0, y0 = y0, r = r, fill = circle)) +
  geom_circle() +
  theme_void()