通过gnuplot自动生成xticks,我们经常发现标签太紧/挤在一起,如此快照所示。 我们如何解决这个问题呢?
答案 0 :(得分:0)
这是一个非常粗略的解决方法。这个想法是告诉我们需要多少(近似)刻度标签,并根据整个绘图范围将gnuplot“翻译”成合适的刻度间距。
我正在发布我现在正在使用的内容,它运作得相当好。 需要xmin = 0。 你可以猜测它的工作方式并调整它。
# Get/print stats about input data, ...
stats "output.csv" using 2:5 nooutput
# ... and use them for setting the number of tick labels for x axes, to avoid overlap
#tmin = STATS_min_x
tmin = 0
tmax = STATS_max_x
nxtics = 5 # Tune this
# Do not count 0 as a tick
nxtics = nxtics - 1
# Shift numbers to the range [1,10)
ttic1 = tmax / nxtics
nshift_digits = -floor(log10(ttic1))
shift = 10.0**nshift_digits
tmax_shift = tmax * shift
ttic1_shift = ttic1 * shift
# ttic1_shift should be between [1,10)
# Use (arbitrary) specified tick spacing (here at 1, 2, 5 in the first significant digit, but one could use others, including 2.5, e.g.), which better matches the data range and selected number of tick labels. Note that the number of tick labels would not be strictly maintained.
# Tune these numbers
ttic_shift = 1.0
if (ttic1_shift < 1.3) {
ttic_shift = 1.0
} else { if (ttic1_shift < 3.0) {
ttic_shift = 2.0
} else { if (ttic1_shift < 7.0) {
ttic_shift = 5.0
} else {
ttic_shift = 10.0
} } }
ttic = ttic_shift / shift
print "ttic=", ttic
PS:我没有this工作,虽然我没有尝试“努力”。我想这个解决方案可能适用于单个绘制的数据集,但不确定它是否适用于多个。