5

我用 gnuplot 4.6 版绘制了一个频谱图。我在这里确保它是最新版本: http ://www.gnuplot.info/download.html

Gnuplot 是从 Debian 存储库安装的。

右侧的情节区域和比例包括奇怪的白线。他们似乎将数据分开。在具有密集数据的绘图区域上,它们看起来像方格图案:

http://imageshack.us/a/img822/6219/linese.png

线条在刻度上不太明显,但它们也在那里。秤上只有水平线。

我认为这是监视器色域或其他东西的情况,但线条也出现在pdf monochrome.

我的代码是:

#!/usr/bin/gnuplot

set term pdf
# set style fill noborder # checked with and without this line
set output "../results1/fft.pdf"
set pm3d map
splot "../results1/fft.dat"

正如你所读到的,我尝试使用选项 noborder,但无论是否存在线条都存在。

示例数据可以是:

0 1 3
0 2 3
0 3 4
0 4 2
0 5 2
0 6 3
0 7 4
0 8 3

1 1 3
1 2 2
1 3 4
1 4 2
1 5 2
1 6 3
1 7 4
1 8 4

2 1 2
2 2 4
2 3 4
2 4 3
2 5 2
2 6 4
2 7 2
2 8 2

3 1 2
3 2 3
3 3 3
3 4 4
3 5 2
3 6 2
3 7 2
3 8 2

你知道如何摆脱这条线吗?

4

2 回答 2

2

这也困扰了我一段时间。我最好的解决方法是受这篇文章的启发。基本上你可以使用

plot "datafile" with image

而不是splot命令。数据的绘制方式存在一些细微的差异,但这会创建一个 .pdf,在彩色区域之间没有那些令人讨厌的间隙,并且文件要小得多。

请注意,这只适用于形成矩形网格的数据!如果数据文件是矩阵格式(除了数据点的数量之外没有 x 或 y 数据),对于您的示例来说,这将是

3 3 2 2
3 2 4 3
...

(每个块的第一行的 z 值构成第一行等)您可以使用命令

plot 'datafile' ($1*xincr - x0):($2*yincr - y0):3 matrix with image

parens 中的内容是可选的,但允许您将结果图缩放到正确的 x 和 y 值。(xincr 是一个 gnuplot 变量,您必须为数据中的 x 增量设置,x0 是 x 偏移量等)

如果这导致绘图周围出现白色间隙,请使用绘图命令一次,重新缩放轴,然后再次绘图,例如

set terminal unknown
plot 'datafile' ($1*xincr - x0):($2*yincr - y0):3 matrix with image
set xr[GPVAL_DATA_X_MIN:GPVAL_DATA_X_MAX]
set yr[GPVAL_DATA_Y_MIN:GPVAL_DATA_Y_MAX]
set output "fft.pdf"
replot

第二个答案

我发现这种效果取决于 pdf-viewer。例如,它出现在 linux 下的 evince 中,但不是 okular。根据您的应用程序,您可以使用不同的查看器。

于 2012-10-01T20:14:41.870 回答
0

对我来说,更换

set pm3d map

unset surface; set pm3d at b; set view map

纠正了这个问题。在 gnuplot 4.6 patchlevel 2 和 gnuplot 5.4 patchlevel 1 上测试。

我无法解释原因,但手册显示

set pm3d map

是一个捷径

 set pm3d at b; set view map; set style data pm3d; set style func pm3d

简单的测试表明,如果包含任何“设置样式”指令,就会出现问题。它们的移除纠正了问题,但使表面可见 - 因此是“未设置的表面”。

于 2021-07-28T22:58:22.023 回答