在 pgfplots/tikz 中锐化模糊表面图

在 pgfplots/tikz 中锐化模糊表面图

我使用 matlab2tikz 绘制了如下图像:在此处输入图片描述

如您所见,图像上的红色和蓝色区域非常模糊。我想知道是否有任何方法可以锐化它们。我的 tikz 代码如下:

https://www.dropbox.com/s/tnfxhw6vuhpcr9v/SH2.tikz?dl=0

代码看起来很长但只是一系列轴环境和坐标。

答案1

如果从所有 addplots 中删除该行:shader=interp,那么您会得到如下内容:

模糊程度降低

看起来模糊感没那么强。这更接近你想要的效果了吗?

由于 TeX 内部内存限制,我无法绘制所有五个球体,所以这是您需要解决的问题。


编辑:

使用该选项shader=flat可获得相同的图像,但没有网格线。我个人认为带网格看起来更好。

在此处输入图片描述

答案2

“模糊”效果是由于颜色值的插值而产生的。请记住,“模糊”与“平均颜色”密切相关,而这正是许多着色器的目的:它们以智能方式“平均”颜色。如果您在网格中相邻的面片之间有(并期望)平滑过渡,但您的图像本质上不平滑,则插值方案是不错的选择。因此,黄色在插值方案中占主导地位。

解决方案是切换到非插值shader

如果你切换到shader=flat corner,你会得到

在此处输入图片描述

请注意,shader=interp是线性插值,shader=flat(相当于shader=flat mean)是使用平均值的常数插值并shader=flat corner使用其中一个角(第一个角)的颜色。

请注意,这对最后一个球体有很大影响:显然,垂直切片的 cdata 以这种方式被忽略了。

相关内容