我有一些实验数据,并想要多次拟合函数f(x; I,d,s)。每个拟合产生一组参数;让我们假设我装了3次,结果总共有9个参数:I_1,I_2 ...... s_3。我想在3 * 3表中显示值,这些表具有一些描述性标题,每组参数与键中的样本对齐:here
为简单起见,我只显示了3条没有数据的水平线,并定义了变量而不是实际拟合它们。我正在使用LaTeX(以及amsmath
,sprintf
等包)对绘图进行后处理,通过\tabular
和set key bottom left Left reverse spacing 1.25
set yrange [0:1]
set termopt noenhanced
I_1=608.18
d_1=0.61
s_1=0.005
I_2=607.53
d_2=0.61
s_2=0.005
I_3=611.97
d_3=0.63
s_3=0.004
plot 0.9 lw 3 t sprintf("\\begin{tabular}{ccc} $I_{rel}$ & $\\delta / \\si{\\per\\cm}$ & $s / \\si{\\per\\cm}$ \\\\ \\num{%.2f} & \\num{%.2f} & \\num{%.3f} \\\\ & & \\end{tabular}",I_1,d_1,s_1), \
0.8 lw 3 t sprintf("\\begin{tabular}{ccc} \\parbox{\\widthof{$I_{rel}$}}{~} & \\parbox{\\widthof{$\\delta / \\si{\\per\\cm}$}}{~} & \\parbox{\\widthof{$s / \\si{\\per\\cm}$}}{~} \\\\ \\num{%.2f} & \\num{%.2f} & \\num{%.3f} \\\\ & & \\end{tabular}",I_2,d_2,s_2), \
0.7 lw 3 t sprintf("\\begin{tabular}{ccc} \\parbox{\\widthof{$I_{rel}$}}{~} & \\parbox{\\widthof{$\\delta / \\si{\\per\\cm}$}}{~} & \\parbox{\\widthof{$s / \\si{\\per\\cm}$}}{~} \\\\ \\num{%.2f} & \\num{%.2f} & \\num{%.3f} \\\\ & & \\end{tabular}",I_3,d_3,s_3)
set term epslatex colour rounded
set out "gnuplot-table.tex"
replot
的组合实现对齐:
\tabular
每个标题'包含它自己的3行 - -15
:第一行包含具有表头长度的空格,第二行包含实际数字,第三行完全为空。前者是数字和标题的正确垂直居中所必需的,而后者需要第二行与关键样本水平对齐。
虽然我的代码正在运行,但它非常混乱且只能很难定制。有没有人更好地实现这个目标?
答案 0 :(得分:0)
要在键中获得“表格标题”,您可以绘制绘图范围之外的白点或线,并使该图的标题成为所需的标题。然后像你一样绘制其余部分,但没有三个行表。你有一个标题,一切都应该很好地对齐。
同时将set term
和set out
移至脚本顶部并移除replot
,如果没有理由我不知道如此设计它。