如何用Python或R绘制花瓣式气泡图?附R语言数据示例
实现花瓣状气泡图的简便方法(R语言)
不需要自定义几何图形,用ggplot2配合极坐标就能精准实现花瓣状排列,同时灵活控制气泡尺寸。以下是具体实现步骤:
1. 数据预处理
给每个类别分配极坐标的角度和半径,让气泡均匀分布在圆周(或中心+圆周),形成花瓣布局:
library(ggplot2) # 原始数据 data <- data.frame( category = c("Metabolism", "Lipid metabolism", "AMPK signaling pathway", "PPAR signaling pathway", "Lipid biosynthesis proteins"), value = c(37, 17, 8, 6, 6) ) # 添加极坐标参数:5个类别均匀分布在圆周,角度间隔72° data$angle <- seq(0, 360 - 360/5, length.out = 5) # 可选:把数值最大的类别放在中心,其余在圆周,更贴合花朵形态 data$radius <- c(0, 1, 1, 1, 1) # 若要所有气泡都在圆周,统一设radius=1即可 # data$radius <- 1
2. 绘制花瓣状气泡图
通过geom_point映射气泡大小,结合coord_polar转换为极坐标,同时调整主题简化视觉元素:
ggplot(data, aes(x = angle, y = radius, size = value, label = category)) + # 设置气泡样式:颜色、透明度 geom_point(color = "#f4a261", alpha = 0.9) + # 类别标签向外偏移,避免与气泡重叠 geom_text(nudge_y = 0.25, size = 3.5, color = "#264653") + # 控制气泡尺寸范围,避免过大/过小 scale_size(range = c(6, 20)) + # 转换为极坐标,顺时针排列 coord_polar(theta = "x", direction = -1) + # 移除多余的背景、坐标轴 theme_void() + # 隐藏图例(若不需要) theme(legend.position = "none")
关键参数说明
angle:通过均匀分配角度值,实现气泡的圆周对称排列,保证花瓣布局的规整性scale_size:自定义气泡尺寸的上下限,根据数据范围调整,避免气泡过大覆盖标签或过小不明显coord_polar:将直角坐标转换为极坐标,是实现花瓣排列的核心nudge_y:调整标签的偏移量,确保标签清晰显示在气泡外侧
内容的提问来源于stack exchange,提问作者Joydeep Shaw
相关产品推荐
相关产品推荐

