对于未知的绘图大小,如何编辑此脚本以将关键点移到绘图之外而不压缩绘图?

问题描述 投票:0回答:1

脚本用于制作情节本身。但是,将关键帧移到绘图窗口之外会导致其压缩。我不知道边距大小是多少,因为此脚本创建每个图并将其保存为 SVG。我不知道该怎么处理这个尺寸,我已经尝试了其他推荐的“修复”,但似乎都不起作用。

这是日期:

 "potential" "Bare" "1/2ML OH Fe" "1/2ML OH Cu" "1ML OH" "1ML OH Fe" "1ML OH Cu" "3/2ML OH Fe" "3/2ML OH Cu" "2ML OH" "0-2"
0.00           0         0.949         0          0           0          0            2.685         4.636     4.511
1.23           0        -0.281         0          0           0          0           -1.005        -0.454    -0.409


"potential" "Bare" "1/2ML OH Fe" "1/2ML OH Cu" "1ML OH" "1ML OH Fe" "1ML OH Cu" "3/2ML OH Fe" "3/2ML OH Cu" "2ML OH" "0-6"
0.00           0         0.267         0          0           0          0            2.632         3.960     4.710
1.23           0        -0.533         0          0           0          0           -1.058         0.370    -0.200


"potential" "Bare" "1/2ML OH Fe" "1/2ML OH Cu" "1ML OH" "1ML OH Fe" "1ML OH Cu" "3/2ML OH Fe" "3/2ML OH Cu" "2ML OH" "1-1"
0.00           0        -0.295         0          0           0          0            0.498         0.503     2.403
1.23           0        -1.605         0          0           0          0           -2.892        -2.087    -2.517

这是生成绘图的脚本: 有些行已为我注释掉了。

#!/usr/local/Cellar/gnuplot/5.4.4/bin/gnuplot
### Batch create SVG files from multiple subblocks

FILE = "total.dat"

     set term svg font "{/:Bold}Sans,25"
     #set term qt font "Sans,21"
     set border 15 front linecolor rgb "black"  linewidth 3.000 dashtype solid
     #set key noautotitle samplen 2
     set format x "%.1f"
     #set nokey
     set key top right
     set key outside
     set key font "{/:Bold,15}"
     #set key at 2.3,2,0
     set xrange [0:1.23]
     set yrange [-2:2]
     set xlabel "U (V vs. RHE)"
     set xlabel  offset character 0,0.6,0 font "{/:Bold},23"
     set ylabel "{/Symbol D}G (eV)"
     set ylabel  offset character 1.0, 0, 0 font "{/:Bold},26"
     set xtics nomirror font "{/:Bold},24"
     set ytics nomirror font "{/:Bold},24"
     set title noenhanced
     myFileOut(s) = sprintf("%s.svg",s)

     do for [i=0:2] {
         stats FILE index i every ::::0 u (s=strcol(11),0) nooutput
         set output myFileOut(s)

         plot FILE index i u 1:2 w l lw 3 title columnheader(2), \
         "" index i u 1:3 w l lw 3 title columnheader(3), \
         "" index i u 1:4 w l lw 3 title columnheader(4), \
         "" index i u 1:5 w l lw 3 title columnheader(5), \
         "" index i u 1:6 w l lw 3 title columnheader(6), \
         "" index i u 1:7 w l lw 3 title columnheader(7), \
         "" index i u 1:8 w l lw 3 title columnheader(8), \
         "" index i u 1:9 w l lw 3 title columnheader(9), \
         "" index i u 1:10 w l lw 3 lc rgb "pink" title columnheader(10)

}
 set output
gnuplot
1个回答
0
投票

在 gnuplot 版本 5.4.4(由脚本显示)中,您应该能够组合

set key outside
set rmargin at screen <fraction>
来获得您想要的内容,尽管需要进行一些实验来找到右边距的适当设置。这是一个例子:

set key outside box
set rmargin at screen 0.7
set logscale y 
DATA = "some_file.dat"
plot for [col=2:15] DATA using 1:col with lines

为了完整起见,我将补充一点,如果您有稍微更新的 gnuplot 版本,5.4.5(如果不是最新且最好的版本 6),那么您可以使用

set key offset <whatever>
重新定位密钥,而不会干扰其他任何内容。

这是一个简单的图,其中有键(默认),但有明确的右边距,因为我知道我想要留出一些空间。

set logscale y 
set rmargin at screen 0.7
DATA = "some_file.dat"
set style data lines
set key inside box
plot for [col=2:15] DATA using 1:col title sprintf("DATA column %d",col)

这里是添加键偏移以将键位置移动到右侧保留的量后完全相同的图。

set key offset screen 0.3
replot

© www.soinside.com 2019 - 2024. All rights reserved.