gnuplot中pngcairo格式的ylabel中缺少大写字母N的一部分

Posted

技术标签:

【中文标题】gnuplot中pngcairo格式的ylabel中缺少大写字母N的一部分【英文标题】:Part of capital letter N is missing in ylabel in pngcairo format in gnuplot 【发布时间】:2018-11-01 03:18:59 【问题描述】:

我对 ylabel 中的大写字母 N 有疑问,特别是缺少部分字母。在 xlabel 中应用相同的标签时效果很好。

使用PNGCAIRO终端时会出现这个问题(它适用于eps和jpeg格式)。

我想使用 pngcairo 格式。那么有没有办法解决这个问题呢?

代码:

reset
set terminal pngcairo size 600,400 enhanced font 'Verdana,10'
set output "Nproblem.png"
set datafile separator ","
# color definitions
set colorsequence default
set style line 1 lc 3 lt 1 lw 2 dt 3 # --- red
set xlabel 'Next N n M|M| N|N| (N/N)'
set ylabel 'Next n N M|M| N|N| (N/N)'
set grid 
plot "EMS_term_magnitude_comparison_400A_1.8Hz_center.csv" u ($5+0.13):(sqrt($1*$1+$2*$2+$3*$3)) w l ls 1 t 'N'
set out 
reset

ylabel中缺少N的PNG图:

Jpeg 图或我希望 ylabel 的样子:

【问题讨论】:

这是一个错误(您可以尝试不同的字体,它们在基于 cairo 的终端 y 轴上看起来都变形了)我想我以前见过。旋转标签也有同样的问题:set label 2 "NNNNNNNN" at -3,-3 rotate by 90,在 gp 5.2pl3 和 5.0pl6 中看起来是一样的。 同时可以使用png终端,和jpeg一样的套路,看起来不错。 pdfcairo 也是如此,很可能是因为 pdf 将文本旋转留给了查看者。 这必须是特定于平台的;我没有看到在 OS X 上使用 gnuplot 5.2.2 和 pango 4001.14.0 和 cairo 11403.12.0 这样的工件。您能否使用pngcairo 终端发布test 命令的输出? @user8153 我也使用 gnuplot 5.2.2。在 Windows 10 专业版上。 pngcairo 中测试命令的输出:Imgur 可能是bug,但是verdana是M$字体,你试过非windows的吗? 【参考方案1】:

在 gnuplot 5.4.1 中仍然可以观察到这种奇怪而烦人的行为 正如 cmets 中提到的,这可能取决于许多因素:终端、gnuplot 版本、操作系统、字体、字体大小,可能取决于终端大小等。 所以,我可以在 wxt 终端上的 Win10 上使用 gnuplot 5.4.1 重现这个。看起来这只发生在标准字体大小上,在我的例子中是 10。

但是,如果您指定font sprintf('",%d"',10) 而不是默认大小或font ",10",您似乎可以解决它。 这很奇怪,但也许有人对此有解释?

代码:

### disappearing horizontal lines in labels
reset session

myText(i) = sprintf("%g pt: %s",i,'HHH III MMM NNN |||')
set nokey

set title "Example:\nfontsize 10: yes\nfontsize 11: no" left
set ylabel  myText(10) font ",10"
set y2label myText(11) font ",11"
plot x

pause -1

set title "Workaround:\nfont sprintf('\",%d\"',10): no\nfont \",10\": yes" left
set ylabel  myText(10) font sprintf('",%d"',10)
set y2label myText(10) font ",10"
plot x

### end of code

结果:

【讨论】:

以上是关于gnuplot中pngcairo格式的ylabel中缺少大写字母N的一部分的主要内容,如果未能解决你的问题,请参考以下文章

gnuplot画图中文标注相关问题

gnuplot:静默错误读取(非标准形式)科学格式数字

与 gnuplot 格式说明符 %t 和 %T 不一致?

gnuplot:如何在轴上使用 a*(10^b) 格式

Ruby / Gnuplot / GnuplotRB中的时间轴格式

GNUPLOT画图工具