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

mmz*_*mzc 1 axis gnuplot axis-labels

在 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' 
Run Code Online (Sandbox Code Playgroud)

这会将轴从边界移动到轴的 0 值。但是, xlabel 和 ylabel 保留在边界处,使它们处于奇怪的位置。是否有将轴标签设置为轴零值位置的通用方法?

在此处输入图片说明

Chr*_*oph 5

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

y 标签: x 轴的起点位于graph 0, first 0(图的最左侧点和 y 方向的零位置)。现在,将标签向左移动 1 个字符的宽度offset char -1,0并右对齐:

set label 'y' at graph 0, first 0 offset char -1, char 0 right font 'Times-Italic,14' 
Run Code Online (Sandbox Code Playgroud)

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'
Run Code Online (Sandbox Code Playgroud)

请注意,使用此功能,您必须手动在图的左侧和下方留出足够的空间以容纳标签,例如

set lmargin 3
set bmargin 2
Run Code Online (Sandbox Code Playgroud)

完整示例:

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
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

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