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的一部分的主要内容,如果未能解决你的问题,请参考以下文章