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

如何在R中绘制带填充的Delaunay三角剖分图(类似Voronoi图,以iris为例)

基于鸢尾花数据集绘制带变量填充的Delaunay三角剖分图

已完成的Voronoi剖分填充图

以鸢尾花(iris)数据集为例,借助ggplot2和ggforce包,我已经实现了按Petal.Length(花瓣长度)填充颜色的Voronoi剖分图,代码如下:

# 带颜色填充的Voronoi剖分图
ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
  geom_voronoi_tile(aes(fill = Petal.Length))

(效果图为:以花萼长度和宽度为坐标,每个Voronoi多边形颜色随花瓣长度渐变的可视化图)

问题:Delaunay三角剖分的填充映射失败

我尝试用类似逻辑绘制Delaunay三角剖分图,希望三角形也能按Petal.Length填充颜色,但运行代码后无法得到预期效果:

# 尝试绘制带填充的Delaunay三角剖分图
ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
  geom_delaunay_tile(aes(fill = Petal.Length))

(效果图为:Delaunay三角形已生成,但填充颜色未按花瓣长度正确映射)

解决方案:正确映射填充变量的Delaunay绘图代码

要让Delaunay三角形按指定变量填充,需要使用stat_delaunay并明确设置分组和几何对象,确保填充变量能关联到每个三角形。以下是可行代码:

# 按Petal.Length填充的Delaunay三角剖分图
ggplot(iris, aes(Sepal.Length, Sepal.Width)) +
  stat_delaunay(
    aes(fill = Petal.Length, group = -1L),
    geom = "polygon",
    alpha = 0.8 # 可选:调整透明度
  ) +
  scale_fill_viridis_c(option = "plasma") # 可选:使用渐变色彩方案

说明

  • group = -1L参数确保所有生成的三角形被正确识别为独立多边形
  • stat_delaunay会基于原始数据点生成Delaunay三角剖分,并将每个三角形与顶点对应的Petal.Length关联,默认取顶点数值的均值作为填充依据
  • 可以通过scale_fill_*系列函数调整颜色渐变样式,优化可视化效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:55:18