无法更改多点模式的输出,GNUPLOT?

无法更改多点模式的输出,GNUPLOT?,gnuplot,Gnuplot,我试图使用“do for sprintf”在gnuplot中绘制多个输出文件。我的代码是 reset #set encoding utf8 set encoding iso_8859_1 set terminal postscript eps enhanced color font 'Times-Bold' 25 do for [t=1:4] { #set output 'LeftChiral_DOS.png' set output sprintf('Trial-Ru%d-d-up.eps'

我试图使用“do for sprintf”在gnuplot中绘制多个输出文件。我的代码是

reset
#set encoding utf8
set encoding iso_8859_1
set terminal postscript eps enhanced color font 'Times-Bold' 25

do for [t=1:4] {

#set output 'LeftChiral_DOS.png'
set output sprintf('Trial-Ru%d-d-up.eps',t)

set size  1.0, 0.94

datafile1 = sprintf('Ru%d-up.dat',t)
datafile2 = sprintf('Ru%d-down.dat',t)


set multiplot layout 1,2

set style data linespoints
#
set origin 0.2, 0

set  noxzeroaxis
set tics out
set border linewidth 2.
set style line 1 lc rgb "red" lt 1 lw 1.5 pt 7
set style line 2 lc rgb "blue" lt 1 lw 2.0
set style line 3 lc rgb "green" lt 1 lw 2.0
set style line 4 lc rgb "black" lt 2 lw 1.5 dt 2
#
set key
set key vertical at 0.9,1.6
set key font ",20"
set noxtics
set ylabel "Energy (eV)"
set xtics ( " {/Symbol G} " 0, " Y " 0.09049, " C " 0.14273, " Z "   0.23322," D " 0.27012, " E " 0.36061," A " 0.41285, " B " 0.50334, " {/Symbol G} " 0.54024)

set origin 0.1,0

set yrange[   -8.0:   4.0]
set xrange[   0.000:    0.54024 ]
 unset key
 weight=15

 plot datafile1 u ($1):2:($3*weight) every 3 w points lw 2 lc rgb "#FF0000" pt 6

 plot datafile2 u ($1):2:($3*weight) every 3 w points lw 2 lc rgb "#FF0000" pt 6
 }
如您所见,我使用do for和sprintf为t变量的每个值输出多个文件

但gnuplot给我的错误是“无法更改多点模式的输出”

谁能帮我解决这个问题


谢谢,所以我的评论是错的。在再次设置输出之前,只需
取消设置multiplot
。因此,这里有一个再次出错的最小示例(当您在stackoverflow上发帖时,使用最小示例非常重要)

通过在末尾添加
unset multiplot
,您将创建四个没有错误的multiplot文件:

#!/usr/bin/gnuplot
set term pdf
do for [t=1:4] {

  set output "test_".t.".pdf"
  set multiplot

  f(x)=x*t
  g(x)=-x*t
  set xrange [0:100]
  plot g(x)
  plot f(x)
  unset multiplot
}
我想这是因为,正如那位记者所说:

命令集multiplot将gnuplot置于multiplot模式,在 在同一页面、窗口或屏幕上放置的几个绘图


将绘图放在同一个文件中而将其放在不同的文件中是没有意义的

所以我的评论是错误的。在再次设置输出之前,只需
取消设置multiplot
。因此,这里有一个再次出错的最小示例(当您在stackoverflow上发帖时,使用最小示例非常重要)

通过在末尾添加
unset multiplot
,您将创建四个没有错误的multiplot文件:

#!/usr/bin/gnuplot
set term pdf
do for [t=1:4] {

  set output "test_".t.".pdf"
  set multiplot

  f(x)=x*t
  g(x)=-x*t
  set xrange [0:100]
  plot g(x)
  plot f(x)
  unset multiplot
}
我想这是因为,正如那位记者所说:

命令集multiplot将gnuplot置于multiplot模式,在 在同一页面、窗口或屏幕上放置的几个绘图


将绘图放在同一个文件中而将其放在不同的文件中是没有意义的

我想你可以用
设置输出“try Ru.t.”-d-up.eps“
代替你的
sprintf
我想你可以用
设置输出“try Ru.t.”-d-up.eps“
代替你的
sprintf
非常感谢你的建议。这确实对我有用。似乎do循环中的多点未设置很重要。再次非常感谢。非常感谢你的建议。这确实对我有用。似乎do循环中的多点未设置很重要。再次感谢。