You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中实现4个嵌套圆形沿底边对齐的可视化效果

实现方案

你可以使用ggplot2搭配ggforce包实现需求,以下是可直接运行的完整代码:

# 未安装对应包可先运行下一行安装
# install.packages(c("ggplot2", "ggforce"))

# 加载依赖包
library(ggplot2)
library(ggforce)

# 读取示例输入数据
d <- read.table(text = "circle:x
Circle1:340000
Circle2:5000
Circle3:1100
Circle4:340", header = TRUE, sep = ":")

# 计算圆形参数
max_val <- max(d$x)
# 按面积与数值成正比计算半径,最大圆半径设为10,可按需调整
d$radius <- sqrt(d$x / max_val) * 10
# 固定所有圆x坐标为同一值,y坐标设为自身半径,保证底边对齐在y=0水平线
d$x_pos <- 0
d$y_pos <- d$radius
# 绘制嵌套对齐圆形
ggplot() +
  # 按半径从大到小绘制,避免小圆被遮挡
  geom_circle(data = d[order(-d$radius), ],
              aes(x0 = x_pos, y0 = y_pos, r = radius, fill = circle),
              alpha = 0.7, color = "black") +
  # 强制坐标等比例,避免圆形变形为椭圆
  coord_equal() +
  # 极简主题,移除无关坐标轴元素
  theme_void() +
  labs(fill = "圆形分类")

逻辑说明

  • 尺寸对应逻辑:圆形面积和输入数值成正比,因此半径取数值/最大值的平方根再乘以最大圆半径,符合要求的尺寸比例规则
  • 对齐逻辑:所有圆形y坐标等于自身半径,因此每个圆的底部位置均为y_pos - radius = 0,天然实现沿同一底边对齐,x坐标统一则实现嵌套效果

内容的提问来源于stack exchange,提问作者katebeckett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:36:03