如何让 Gnuplot 对负数使用 "unicode minus" 符号

How to make Gnuplot use the "unicode minus" sign for negative numbers

Gnuplot 在打印负数(例如刻度标签)时使用连字符减号 (U+002D)。我想让 Gnuplot 使用 unicode 减号 (U+2212)。

通常,我依赖以下解决方法之一:

  1. 使用set xtics (-0.05 "−0.05", ...)明确设置每个刻度线的标签;
  2. 使用 LaTeX 驱动程序导出绘图(例如 epslatex)并将数字括在 $$ 中(例如 set format x "$%.2f$")。

但是,none 上面的解决方案吸引了我。有没有办法让 Gnuplot 自动使用正确的负数印刷约定?

不幸的是,我唯一能找到的 "solution" 是使用 sprintf 绘制具有格式化 x 轴值的标签,而不是使用 xtics set format x " ":

set format x " "
plot 'data', \
  'data' u 1:(0):(( >= 0 ?  : sprintf('{5}%d', -))) notitle w labels offset graph 0, -0.55

你必须在 PostScript 字符代码中找到一个接近 unicode 减号的符号而不是 {5}

这段代码假定数据的均值为0,然后检查x值</code>是否为正<code>(test ? yes : no)

从 5.0.5 版本开始,gnuplot 有一个 set minussign 命令。设置后,也用于设置抽动标签的 gprintf 函数使用印刷减号 (U+2212) 而不是连字符:

set encoding utf8
set minussign
plot x