答案 0 :(得分:2)
根据标签的生成方式,有多种方法可以实现此目的。
假设您的数据类似于
39 6
41 7
43 9
52 12
55 15
58 3
62 9
63 7
70 5
76 9
77 2
79 3
我试图模仿你的例子中的标签。
您可以旋转标签。命令set xtics rotate by <angle>
将按给定角度旋转标签。
对于本演示,我将xrange设置为20-100,这样我就可以像你所示的那样强制标签重叠。我还将明确指定tic标记(gnuplot&#39;自动生成的标记通常不会重叠),因为我假设你的示例生物中它们的间距不均匀。
如果,我只是尝试用plot datafile u 1:2:xtic(1)
进行绘图,我将获得重叠标签
如果我首先发出set xtics rotate by -50
向下旋转标签50度,然后用
plot datafile u 1:2:xtic(1)
我会得到
重叠率明显较低。使用set xtics rotate by -90
会进一步减少这种情况。
我可以为每个其他标记添加换行符以调整高度以帮助避免重叠。只有在明确指定tic标记时,此方法才有效。
我们可以通过
定义一个函数adjustlab(x,y) = (int(x)%2==0?y:sprintf("\n%s",y))
此功能需要两个输入。第一个是行号,第二个是标签。如果行号是奇数,它将添加换行符。
我们需要先用set bmargin 3
展开底部边距,然后我们可以用
plot datafile u 1:2:xtic(adjustlab($0,strcol(1)))
请注意,我们使用strcol函数将第1列作为字符串读取,以提供给我们的调整函数。
这会产生
可以构造更复杂的功能,以允许更复杂的调整条件。