0

我编写了一个 bash 脚本,它生成文件,然后使用以下模板自动绘制这些文件(最小的工作示例):

 set terminal epslatex color size 3,1.2
 set output "fig.tex"

 set ylabel '$\lambda_i$' offset +1.5,0
 set xlabel '$i$' offset 0,+0.5
 set logscale x
 set mxtics 5
 set mytics 5
 plot "file.dat"  w p pt 7 ps 0.7 lc rgb "#033775"

一切都很好,但是当输入的数据跨越一个可观的价值范围时,往往会有太多的 ytics。

[没有足够的代表,所以这里是一个例子:http://i.stack.imgur.com/zd7XK.png]

我怀疑是 epslatex 终端导致了问题(即 gnuplot 不知道实际的字体高度,并且在可用空间中产生了太多的抽动)。我的解决方法是限制抽动的数量,同时允许自动放置抽动,但我找不到关于该主题的任何内容。

4

1 回答 1

2

一般来说,您可以减少 y 轴上的抽动频率

set ytics VALUE

一个例子是:

plot sin(x)

产生这个自动抽动(修复:删除图像链接)和

set ytics 0.5
plot sin(x)

产生这个

如果您不知道为 VALUE 设置哪个值,您可以使用 STATS_min_x 和 STATS_max_x 用于 gnuplot4.6 和 GPVAL_DATA_X_MIN 用于早期版本来计算。有关这些的用法,请参见安迪拉斯的答案

或者(使用类似的用法)在这种情况下使用 GPVAL_Y_MIN 和 GPVAL_Y_MAX 可能更有用,因为它们已经四舍五入。

然后你可以使用例如:

set terminal unknown
plot(x)
ntics = 4.
dy = floor((GPVAL_Y_MAX-GPVAL_Y_MIN+0.5)/ntics*10.)/10.
set ytics dy
set terminal ...
replot

对于上面的示例,它会产生指定的 4 个抽动(修复:删除图像的链接)。

于 2013-03-28T00:24:05.597 回答