Latex gnuplot(epsletex)中的双重标签和tics

Latex gnuplot(epsletex)中的双重标签和tics,latex,gnuplot,Latex,Gnuplot,我正在尝试使用epslatex-gnuplot(版本5.0 patchlevel 1)从文件中读取一些值来绘制一些图形,如下所示: # gnuplot.gp set term epslatex set output "figure.tex" set xlabel "x" set ylabel "y" set nokey set size square set xrange [0:1.0] set yrange [0:1.0] do for[idLine = 1 : 4 : 1]{ a

我正在尝试使用epslatex-gnuplot(版本5.0 patchlevel 1)从文件中读取一些值来绘制一些图形,如下所示:

# gnuplot.gp
set term epslatex
set output "figure.tex"
set xlabel "x"
set ylabel "y"

set nokey
set size square
set xrange [0:1.0]
set yrange [0:1.0]

do for[idLine = 1 : 4 : 1]{
    a1 = system("cat data.dat | awk 'NR == ".idLine." {print $1}'")
    a2 = system("cat data.dat | awk 'NR == ".idLine." {print $2}'")

    plot x**a1 + a2 with lines lt 1 lc rgb "black"
}
数据是

# data.dat
1.0 0.0
2.0 0.0
3.0 0.0
4.0 0.0
虽然我能画出我想要的图形,但仍然存在一个问题,即标签比单个绘图更粗体(请参见下图,我希望图像质量足以分辨差异…)。 这些现象似乎是由于多次打印的双工字母造成的

我已经尝试了几种方法来避免这个问题,但没有一种是有效的。 有什么聪明的方法可以避免这个问题吗


在您的情况下,您可以将整个文件读入一个变量,并使用
word
提取参数。然后,您可以使用
plot for…
对所有参数进行迭代,该函数只生成一个包含多个绘图的图形:

# gnuplot.gp
set term epslatex
set output "figure.tex"
set xlabel "x"
set ylabel "y"

parameters = system("awk '!/^#/' data.dat")
set xrange [0:1]
plot for [i=1:words(parameters):2] x**word(parameters, i) + word(parameters, i+1) with lines notitle

awk
调用从输入文件中删除注释行。如果没有任何注释,您也可以使用
parameters=system(“cat data.dat”)

谢谢您的回答,漂亮的解决方案。