gnuplot (epslatex) 中的双工标签和抽动
Duplex label and tics in gnuplot (epslatex)
我正在尝试使用 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 }'")
a2 = system("cat data.dat | awk 'NR == ".idLine." {print }'")
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")
.
我正在尝试使用 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 }'")
a2 = system("cat data.dat | awk 'NR == ".idLine." {print }'")
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")
.