如何将 xlabel 和 ylabel 移动到 gnuplot 中的零轴位置

how to move xlabel and ylabel to zeroaxis position in gnuplot

在 gnuplot 中,我使用

set style line 11 lc rgb '#222222' lt 1;
set border 3 back ls 11;
set zeroaxis linetype 1 linecolor rgb '#222222'; 
set xtics axis; 
set ytics axis; 
set border 0;
set style line 12 lc rgb '#808080' lt 0 lw 1
set grid back ls 12
set xtics add ('' 0)
set ytics add ('' 0)
set xlabel 'x' font 'Times-Italic,14' 
set ylabel 'y' rotate by 0 font 'Times-Italic,14' 

这会将轴从边界移动到轴的 0 值。然而,xlabel 和 ylabel 仍然在边界处,给了他们奇怪的位置。有没有一种通用的方法可以将轴标签设置为轴的零值位置?

使用通用 set label 定位此类标签。然后你可以使用 graphfirst 坐标来定位标签。

y-label: x轴的起点在graph 0, first 0(绘图最左边的点和y方向的零位置) .现在,使用 offset char -1,0 将标签向左移动 1 个字符宽度,然后右对齐:

set label 'y' at graph 0, first 0 offset char -1, char 0 right font 'Times-Italic,14' 

x-label: y轴的起点在first 0, graph 0。将标签向底部再移动 1 个字符宽度并将其居中:

set label 'x' at first 0, graph 0 offset char 0, char -1 center font 'Times-Italic,14'

请注意,使用此方法,您必须手动在图的左侧和下方制作足够 space 以容纳标签,例如

set lmargin 3
set bmargin 2

完整示例:

reset
set zeroaxis linetype 1 linecolor rgb '#222222'
set xtics axis
set ytics axis
set border 0
set style line 12 lc rgb '#808080' lt 0 lw 1
set grid back ls 12
set xtics add ('' 0)
set ytics add ('' 0)
set label '{/:Italic x}' at first 0, graph 0 offset char 0, char -1 center font 'Times New Roman,14'
set label '{/:Italic y}' at graph 0, first 0 offset char -1, char 0 right font 'Times New Roman,14' 
set lmargin 3
set bmargin 2
plot x + 2

请注意,获取斜体标签的语法仅在版本 5 中引入。