我用gnuplot版本4.6绘制光谱图。 我确保它是这里的最新版本: http://www.gnuplot.info/download.html
Gnuplot是从Debian存储库安装的。
绘图区域和右侧的刻度包含奇怪的白线。他们似乎将数据分开。在具有密集数据的绘图区域,它们看起来像方格图案:
线条在规模上不太明显,但它们也在那里。刻度上只有水平线。
我认为这是监视器色域的情况,但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
你知道怎么摆脱这条线吗?
答案 0 :(得分:1)
这也困扰了我一段时间。我所拥有的最佳解决方法受到this post的启发。基本上你可以使用
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。根据您的应用程序,您可以使用不同的查看器。
答案 1 :(得分:0)
对我来说,替换
set pm3d map
与
unset surface; set pm3d at b; set view map
纠正了这个问题。在 gnuplot 4.6 补丁级别 2 和 gnuplot 5.4 补丁级别 1 上测试。
我无法解释原因,但手册显示
set pm3d map
是
的快捷方式 set pm3d at b; set view map; set style data pm3d; set style func pm3d
简单的测试表明,如果包含任何一个“设置样式”指令,就会出现问题。它们的移除纠正了问题,但使表面可见 - 因此“未设置表面”。