3

我决定从 4.4 迁移到最新版本的 gnuplot 到 4.6 我遇到了 x 标签在 4.6 版本中消失但在 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 的了解是有限的。有人有想法吗?

谢谢

4

1 回答 1

3

更新的答案,由 Ethan Merritt 提供

更好的方法是将标签的对齐方式更改为右对齐(而不是默认居中)。

set xtics rotate by 90 right

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


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

set bmargin at screen 0.2

它看起来很脆弱的原因是set bmargin at screen 0.2,xtic 标签明显延伸到高于 xlabel 的位置。但是,如果您将该行注释掉,它们突然不会延伸到高于 xlabel 的位置。

以下是有和没有那条线的图:

在此处输入图像描述

在此处输入图像描述

也许 cairo/pango 会在标签的任何部分超出可见的“画布”区域的地方剪掉标签?

postscript作为旁注,如果我使用终端,情节似乎也大致正确......

于 2013-01-04T02:20:57.680 回答