使用 gnuplot 在三角形网格上创建 2D 热图

问题描述 投票:0回答:1

从两个三角形的坐标(前两列)开始,在第三列中每个三角形的温度,我想用 gnuplot 绘制两个三角形,其中填充了与第三列(热图)相关的颜色。最终目标是使用 gnuplot 从三角形列表(三角网格)绘制热图。

通过这个简单的例子, 文件1.dat:

# first triangle
0.0 0.0 10.
2.0 0.0 10.
1.0 2.0 10.

# second triangle
2.0 0.0 20.0
6.0 0.0 20.0
5.0 2.0 20.0

我希望 gnuplot 绘制两个三角形,填充与第三列相关的颜色。我最终得到的代码是:

set pm3d map implicit # possibly with corners2color min
splot 'file1.dat' u 1:2:($3) with pm3d notitle

它只会导致单一颜色的一个实体。 使用file1.dat获得的图像

如果我通过在三角形的每段之间添加一个空行来以不同的方式重新排列文件: 文件2.dat:

#first triangle
0. 0. 10.0
2. 0. 10.0

2. 0. 10.0
1. 2. 10.0

1. 2. 10.0
0. 0. 10.0

#second triangle
2. 0. 20.0
6. 0. 20.0

6. 0. 20.0
5. 2. 20.0

5. 2. 20.0
2. 0. 20.0

我得到了一个稍微好一点的图像,但仍然不是我想要的(第二个三角形颜色不正确,只有它的部分是正确的): 使用file2.dat获得的图像 我在这里缺少什么?

gnuplot heatmap triangular
1个回答
0
投票

最简单的方法是将数据视为具有 3D 坐标 x y z 的多边形。 默认情况下,z 坐标用于从当前调色板中选择您想要的颜色。 以 file1.dat 为例,并使用

splot
set view map
显示 xy 平面上的投影:

set palette defined (0 "blue", 1 "yellow")
set cbrange [0:30]
set view map
splot "file1.dat" using 1:2:3 with polygons fillcolor  palette

splot+set view map

© www.soinside.com 2019 - 2024. All rights reserved.