我正在使用带有postscript eps终端的gnuplot,这是我的脚本:
set terminal postscript eps enhanced solid "Helvetica" 14
set output "gamma_off_real.ps"
set title 'L=4, N_{up}=N_{dw}=2, U=1.0 with HF, step, V_0=1, Ntimestep=400, Tinterval=10'
set xlabel 'time'
set ylabel 'Re({/Symbol g}_{ij})'
set yrange [-0.5:1]
do for [j=1:(nsit-1)] {do for [i=1:(nsit-j)] {plot 'time/fort.99' u (column(1)):(column((i-1)*nsit+i+j+1)) w l lt 1 lc ((-((j-1)*j)/2+(j-1)*nsit)+i+nsit) lw 3 t sprintf('Re({/Symbol g}_{%i%i})',i,i+j)}}
我在.ps文件的末尾使用两个嵌套的for循环我有多个页面,每个页面只有一条曲线。我应该改变哪些曲线在同一个图中?
答案 0 :(得分:3)
您必须使用语法plot for ...
,它也可以嵌套:
plot for [j=1:(nsit-1)] for [i=1:(nsit-j)] 'time/fort.99' u ...
更新:这不起作用,在plot for ... for
结构中第二个索引不能依赖第一个索引。以下仅绘制三条曲线而不是六条曲线:
plot for [j=1:3] for [i=1:j] i*x + j
有些非常丑陋,如下所示:
s = ''
do for [j=1:(nsit-1)] { do for [i=1:(nsit-j)] { s = s . sprintf('%d %d ', i, j) }}
i(w) = int(word(s, 2*w - 1))
j(w) = int(word(s, 2*w))
plot for [w=1:words(s)/2] 'time/fort.99' u (column(1)):(column((i(w)-1)*nsit+i(w)+j(w)+1)) w l lt 1 lc ((-((j(w)-1)*j(w))/2+(j(w)-1)*nsit)+i(w)+nsit) lw 3 t sprintf('Re({/Symbol g}_{%i%i})',i(w),i(w)+j(w))}}