如何使用 gnuplot 保持表面内部的调色板相同?

How to keep the colors pallete same inside the surface using gnuplot?

我正在绘制图表,附上带有 lc 调色板的图 (1),效果很好。但是,当我在它外面设置一个盒子时,它会将所有颜色仅更改为红色。 如何在图外绘制形状,使图的颜色不变?

注意:我必须根据 crystal 形状绘制不同的形状,而不仅仅是立方体。 我有一个包含 4 列的数据文件 (data.dat) 和一个包含三列的第二个文件 (plot.dat)(仅限位置) 我正在使用以下命令 splot "data.dat" u 5:6:7:4 with l lw 4 lc palette notitle, "plot.dat" u 1:2:3 w l

[![图:1[1] 2

调色板中的全部颜色 cbrange 映射到某些特定范围的 z-values。默认情况下,它的范围与图中使用的 z-values 相同。因此,在您的第一个图中,您可以看到绘图的 z 值和调色板的颜色值 运行 从 -0.6 到 +0.6。您的绘图命令 splot "data.dat" u 5:6:7:4 with l lw 4 lc palette 从第 4 列获取一个值,假设为 0,并在调色板范围内查找映射到的颜色。由于 0 正好位于 cbrange 的中间,因此它被分配了中点颜色。换句话说,颜色条上的抽动标签告诉您将使用什么颜色范围来映射从第 4 列获取的值。显然,您的第 4 列所有值都接近于零,因为它们的颜色大致相同。

在你的第二个情节中,你一定是从不同的地方获取了 z 坐标。不管它是什么,它现在被用来为调色板颜色范围设置不同的默认限制 cbrange。您可以看到范围已变为 [-0.05 : 0.01],而不是 [-0.6 : 0.6]。如果您想保留与第一个绘图相同的颜色值范围,您所要做的就是明确设置该范围,而不是让程序更改它以匹配一组新的 z 值:

  set cbrange [-0.6 : 0.6]

通常情况下,如果您要绘制一组不同的数据集并希望颜色一致,您会提前选择 cbrange 并将其设置为所有绘图的颜色。