绘制多边形并使用第三维度定义颜色

绘制多边形并使用第三维度定义颜色

我想绘制一个非规则形状的多边形,提供坐标 x 和 y。我知道如何做到这一点,例如,通过使用提供的答案这里。但是,我想使用第三维,我们称之为 z,它定义多边形内部的颜色,并根据需要使用插值。

例如,我想要创建的图像示例如下:

带渐变的多边形

如您所见,将形成一个渐变,根据需要插入 z 值并使用现有值作为基础。例如,z 值介于 0 和 1 之间,其中 1 表示黑色,0 表示白色,]0, 1[ 中的值表示灰度,值越高颜色越深。它类似于密度图。

编辑1:

这是我的初始代码:

\begin{tikzpicture}
\begin{axis}[width=12cm]
\addplot[mark=*,patch,
colormap = {whiteblack}{color(0cm)  = (white);color(1cm) = (black)}, mesh/cols=50, z buffer=sort, restrict z to domain=0:inf, shader=faceted interp] 
table {data.txt};
\end{axis}
\end{tikzpicture}

我的data.txt是:

2.17    0.001   0.82044815
2.17    0.002   0.82345825
2.17    0.004   0.82679255
2.17    0.008   0.83334715
2.17    0.016   0.84395915
2.17    0.032   0.8584953
2.21    0.001   0.77582165
2.21    0.003   0.78520505
2.21    0.009   0.80205985
2.21    0.027   0.83085105
2.24    0.001   0.7227885
2.24    0.002   0.73391615
2.24    0.005   0.7543979
2.24    0.015   0.78798745
2.24    0.003   0.74176635
2.24    0.009   0.77064805
2.24    0.027   0.81042375
2.26    0.001   0.66545585
2.26    0.003   0.7012046
2.26    0.005   0.721067
2.26    0.009   0.7447984
2.26    0.015   0.76715245
2.26    0.027   0.794177
2.27    0.001   0.62916195
2.27    0.003   0.6774642
2.27    0.009   0.72961785
2.27    0.027   0.7861086
2.28    0.001   0.5750828
2.28    0.003   0.65059675
2.28    0.005   0.6802631
2.28    0.009   0.7145367
2.28    0.015   0.74447695
2.28    0.027   0.7774403
2.29    0.001   0.51357255
2.29    0.002   0.581053
2.29    0.003   0.6173075
2.29    0.009   0.6972096
2.29    0.027   0.76793225
2.31    0.001   0.36997965
2.31    0.002   0.474415
2.31    0.003   0.53649295
2.31    0.009   0.6587164
2.31    0.016   0.70870255
2.31    0.027   0.7482423
2.31    0.05    0.7912395
2.34    0.001   0.2204104
2.34    0.002   0.316308
2.34    0.003   0.39256745
2.34    0.004   0.45240835
2.34    0.009   0.5883453
2.34    0.016   0.6590771
2.34    0.027   0.71444205
2.34    0.05    0.7690014
2.38    0.001   0.13286995
2.38    0.002   0.1828288
2.38    0.004   0.2980268
2.38    0.008   0.4507145
2.38    0.016   0.58417075
2.38    0.032   0.6833616

得到的结果:

上述代码得到的结果

但是,生成的结果与我想要的相差太远。也就是说,图像的外部/边界点应该用曲线连接,内部点应该用灰度方式表示多边形的颜色......

相关内容