gnuplot:跳过第一行数据

gnuplot: first row of data skipped

我正在使用 gnuplot 5.0。每个脚本的序言如下:

set terminal epslatex 8 color standalone colortext 

问题是 gnuplot 跳过了第一行。据我所知,4.6 版本解决了类似的问题。

对这个问题有什么想法吗?

数据文件示例points.dat

4 4
4 -4
-4 4
-4 -4

第一行 (4, 4) 被跳过。因此,gnuplot 只显示三个点,而不是四个点。特此使用命令

#!/bin/bash


set terminal epslatex 8 color standalone colortext 
set output outputFileName

set size .55,.55
set pointsize 3.0


##############
# Line styles
##############

set linestyle 1 lt 5 lw 1 #
set linestyle 2 lt 2 lw 1.5 
set linestyle 3 lt 6 lw 1 #
set linestyle 4 lt 3 lw 1 
set linestyle 5 lt 2 lw 2 #
set linestyle 6 lt 1 lw 2


##################
# Titles
##################
set title 'Image'
set xlabel '$x$' offset 0,0.5
set ylabel '$y$' offset 2,0


set macros
filename_init = sprintf("%s/image_init.dat",dataFileDirectory)


set key autotitle columnhead
set key horiz


set multiplot
plot
     filename_init  u 1:2 with points lt 0 pt 1 lw 5 lc rgb "magenta" notitle 'initial'  

绕过这个问题的一个技巧是复制第一行。但这不实用。

使用 set key autotitle columnheader gnuplot 使用第一行中的条目作为关键条目,即使您已经为绘图指定了 notitle.

为了证明这一点,考虑以下脚本,使用您发布的 points.dat 中的四个数据点:

set terminal pngcairo
set output 'foobar.png'

set offsets 1,1,1,1
set key autotitle columnhead

filename_init = 'points.dat'

set multiplot layout 1,2
plot filename_init u 1:2 with points lt 0 pt 1 lw 5 lc rgb "magenta"

set key noautotitle
plot filename_init u 1:2 with points lt 0 pt 1 lw 5 lc rgb "magenta" title 'initial'
unset multiplot

结果是

因此,只需从脚本中删除行 set key autotitle columnhead,然后使用 plot ... title 'initial'。这给了你预期的结果。