Gnuplot 4.6 xtics标签消失

3
我决定将gnuplot从4.4迁移到最新版本的4.6 我遇到了一个问题,就是在4.6版本中x轴标签消失了,而在4.4版本中还存在。
以下是我脚本的简化版本。
set key outside
set title "MY TITLE"
set timefmt "%m/%d/%Y-%H:%M:%S"
set format x "%m/%d %H:%M"
set xdata time
set ylabel "Y LABEL"
set xlabel "Time"
set grid
set xtics rotate by 90 offset 0,-5
set terminal pngcairo size 1000,500 font ",9"
set xtics font ",8.0"
set ytics font ",8.0"
set output 'test.png'
plot '-' using 1:2 with linespoints ti "legend"
01/01/2013-00:15 186557
01/01/2013-01:15 254654
01/01/2013-04:00 180146
01/01/2013-06:15 191059
e
set key inside

我已经确定了问题所在,就在这一行。
set xtics rotate by 90 offset 0,-5

由于我的标签名称太长,偏移量导致其消失。
如果您移除这个偏移量到


set xtics rotate by 90

不是在标签上显示,而是在图表中间。

版本4.4以前会压缩图表以腾出标签的空间。

我猜我对gnuplot的了解有限。有人有主意吗?

谢谢。


顺便说一下,我提交了一个错误报告。我们将看到Ethan(或其他gnuplot开发人员)是否同意这是一个bug--我的最后两个报告被关闭为非bug;)您可以在此处跟进进展:https://sourceforge.net/tracker/?func=detail&aid=3599407&group_id=2055&atid=102055 - mgilson
1个回答

3
更新的答案,由Ethan Merritt提供。
更好的做法是将标签的对齐方式改为右对齐(而不是默认的居中对齐)。
set xtics rotate by 90 right

这个可以正确计算边距而无需硬编码边距大小。


这里的标签位置似乎有点不稳定。我认为可能有一个错误需要报告。一个解决方法是通过以下方式显式设置“x轴”的位置:

set bmargin at screen 0.2

由于使用 set bmargin at screen 0.2,x轴刻度标签明显延伸至比x轴标签高的位置,所以它看起来不太可靠。然而,如果您注释掉该行,突然间它们就不会超过x轴标签的位置。
以下是有和没有该行的图表:
或许cairo/pango在任何部分延伸到可见“画布”区域之外的标签中削减标签?
另外一件事,如果我使用postscript终端,图表也似乎大致正确...

非常感谢您的帮助,我会尝试并报告结果。 - Adrien
那第一行起了作用。 第二行不知怎么去掉了x标签。 我就用第一行吧。 - Adrien
使用“set xtics rotate by 90 right”对我来说使情况变得更糟,因为它会剪切掉xtics上的一个额外字符。这是使用Gnuplot 4.6补丁级别0和png终端的情况。 - tsuna
使用 "set bmargin at screen 0.2" 会在 xtics 下方添加一个非常大的白色条纹。 - tsuna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接