Gnuplot中的轴标记命令不工作?

Gnuplot中的轴标记命令不工作?,gnuplot,Gnuplot,我有一个不好看的多重情节,应该写在物理论文里。尽管正如您所看到的,我有很多问题,但最令人沮丧的是,Gnuplot似乎完全违反了我在一些子地块上设置的ytics命令。此外,第一个绘图的轴标签将显示在第二个绘图上。我如何解决Gnuplot有自己的想法却拒绝按我说的去做的问题 reset set terminal postscript eps enhanced color size 10,5 set output 'C:\\Users\\cole1\\Desktop\\multiplot3.eps'

我有一个不好看的多重情节,应该写在物理论文里。尽管正如您所看到的,我有很多问题,但最令人沮丧的是,Gnuplot似乎完全违反了我在一些子地块上设置的ytics命令。此外,第一个绘图的轴标签将显示在第二个绘图上。我如何解决Gnuplot有自己的想法却拒绝按我说的去做的问题

reset
set terminal postscript eps enhanced color size 10,5
set output 'C:\\Users\\cole1\\Desktop\\multiplot3.eps'
set multiplot
set xtics font "Times-Roman, 20"
set ytics font "Times-Roman, 18"

set size .5,.25
set origin 0,.75
set label "(a)" at screen .06,.95
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\logefficiency1.txt' using 1:2 lc rgbcolor "#FF0000" pt 5 with lp notitle
set ytics -3,1,2
set xlabel "Log_{10} current density factor"
set ylabel "Log_{10} percent efficiency"
unset label 1


set size .5,.25
set origin .5,.75
set label "(b)" at screen .56,.95
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4009.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle
set ytics 0,0.5,1
set xlabel "Frequency(THz)"
set ylabel "Intensity/ freq. interval (arb.)"
unset label 1


set size .5,.25
set origin 0,.5
set label "(c)" at screen .06,.7
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4018.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle
set ytics 0,1,4
set xlabel "Frequency(THz)"
set ylabel "Intensity/ freq. interval (arb.)"
unset label 1


set size .5,.25
set origin .5,.5
set label "(d)" at screen .56,.7
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4027.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle
set ytics 0,15,60
set xlabel "Frequency(THz)"
set ylabel "Intensity/ freq. interval (arb.)"
unset label 1


set size .5,.25
set origin 0,.25
set label "(e)" at screen .06,.45
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4036.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle
set ytics 0,15,60
set xlabel "Frequency(THz)"
set ylabel "Intensity/ freq. interval (arb.)"
unset label 1


set size .5,.25
set origin .5,.25
set label "(f)" at screen .56,.45
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4045.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle
set ytics 0,15,60
set xlabel "Frequency(THz)"
set ylabel "Intensity/ freq. interval (arb.)"
unset label 1


set size .5,.25
set origin 0,0
set label "(g)" at screen .06,.2
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4054.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle
set ytics 0,30,120
set xlabel "Frequency(THz)"
set ylabel "Intensity/ freq. interval (arb.)"
unset label 1


set size .5,.25
set origin .5,0
set label "(h)" at screen .56,.2
plot 'C:\\Users\\cole1\\Documents\\MATLAB\\spectralinfo4063.txt' using 1:2 lc rgbcolor "#0000FF" with lines notitle
set ytics 0,300,1200
set xlabel "Frequency(THz)"
set ylabel "Intensity/ freq. interval (arb.)"
unset label 1


unset xtics
unset ytics
unset multiplot

只有将
plot
设置置于
plot
命令之前,设置才会起作用。适用于所有设置的。必须出现在图形中的所有内容和所有设置必须在相应的
绘图
命令之前完成:

set ytics 1
plot x
以下是脚本的改进版本:

reset

datadir = 'C:\\Users\\cole1\\Documents\\MATLAB\\'

set terminal postscript eps enhanced color size 10,5
set output 'multiplot3.eps'

set xtics font "Times-Roman, 20"
set ytics font "Times-Roman, 18"

set style line 1 lc rgb "red" pt 5
set style line 2 lc rgb "blue"

set style data lines
unset key

set multiplot layout 4,2

set label 1 "(a)" at graph 0.01,0.9
set ytics 1
set xlabel "Log_{10} current density factor"
set ylabel "Log_{10} percent efficiency"
plot datadir.'logefficiency1.txt' ls 1 with lp

set label 1 "(b)"
set ytics 0.5
set xlabel "Frequency (THz)"
set ylabel "Intensity / freq. interval (arb.)"
plot datadir.'spectralinfo4009.txt' ls 2

set label 1 "(c)"
set ytics 1
plot datadir.'spectralinfo4018.txt' ls 2

set label 1 "(d)"
set ytics 15
plot datadir.'spectralinfo4027.txt' ls 2

set label 1 "(e)"
plot datadir.'spectralinfo4036.txt' ls 2

set label 1 "(f)"
plot datadir.'spectralinfo4045.txt' ls 2

set label 1 "(g)"
set ytics 30
plot datadir.'spectralinfo4054.txt' ls 2

set label 1 "(h)"
set ytics 300
plot datadir.'spectralinfo4063.txt' ls 2

unset multiplot
要点是:

  • 使用
    set multiplot layout 4,2
    自动更改尺寸和原点
  • 如果
    xlabel
    ylabel
    不改变,则只能设置一次
  • 同样,只有在设置更改时,才必须使用
    set ytics
  • 通常,如果启用了自动缩放,则不能指定
    ytics
    的开始和结束,而只能指定增量
  • 对于子图形标签,使用相对于实际绘图的坐标(
    graph 0.01,0.9
    )。并始终使用相同的标签id(
    1
    )。然后,对于第二个和所有后续绘图,您必须仅更改文本,使用旧坐标。然后,您可以在代码中的一个位置对标签位置进行微调
  • 使用
    设置样式数据行
  • 使用线条样式
  • 使用
    unset键
    隐藏图例

  • 我们怎么能看出你有很多问题?当前输出不显示任何图像。。。一个子批次的所有设置必须在实际
    绘图
    命令之前完成。这可能是主要问题。查看语法
    set multiplot layout 4,2
    以简化您的实际脚本为了让任何人帮助您解决问题,您需要提供一些测试数据,或者至少提供一个显示错误的图像。事实上,在plot命令之后我有了问题,现在已经解决了。谢谢克里斯托夫!