【问题标题】:Duplex label and tics in gnuplot (epslatex)gnuplot(epslatex)中的双工标签和抽动
【发布时间】:2015-09-30 00:49:26
【问题描述】:

我正在尝试使用 epslatex - gnuplot(版本 5.0 补丁级别 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

虽然我可以画出我想要的图形,但仍然存在标签变得比单个图更粗的问题(请参见下图,我希望图像质量足以区分.. .)。 这些现象似乎是由于多次绘制的双字母造成的。

我尝试了几种方法来避免这个问题,但没有一种方法不起作用。 有什么聪明的方法可以避免这个问题吗?

【问题讨论】:

    标签: latex gnuplot


    【解决方案1】:

    在您的情况下,您可以将整个文件读入一个变量并使用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 调用会从您的输入文件中删除注释行。如果没有cmets,也可以使用parameters = system("cat data.dat")

    【讨论】:

    • 感谢您的回答,漂亮的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多