如何让Gnuplot使用“unicode minus”符号表示负数

时间:2015-01-26 15:02:38

标签: unicode gnuplot

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

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

  1. 使用set xtics (-0.05 "−0.05", ...);
  2. 明确设置每个刻度线的标签
  3. 使用LaTeX驱动程序(例如epslatex)导出绘图,并将数字括在$$内(例如set format x "$%.2f$")。
  4. 然而,上述解决方案都没有吸引我。有没有办法让Gnuplot自动为负数使用正确的印刷约定?

2 个答案:

答案 0 :(得分:4)

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

set encoding utf8
set minussign
plot x

enter image description here

答案 1 :(得分:0)

不幸的是,我能找到的唯一“解决方案”是使用sprintf绘制带有格式化x轴值的标签,而不是使用xtics set format x " "

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

并且你必须在PostScript字符代码中找到一个符号,而不是{\055}接近unicode减去。

此代码假定平均数据值为0,然后检查x值$1是否为正(test ? yes : no)