Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gnuplot 使用自动ytics放置时限制ytics的数量_Gnuplot - Fatal编程技术网

Gnuplot 使用自动ytics放置时限制ytics的数量

Gnuplot 使用自动ytics放置时限制ytics的数量,gnuplot,Gnuplot,我编写了一个bash脚本,生成文件,然后使用以下模板自动打印(最简单的工作示例): 一切正常,但当输入的数据跨越可感知的值范围时,往往会有太多的ytic [没有足够的代表,因此下面是一个示例:http://i.stack.imgur.com/zd7XK.png] 我怀疑是epslatex终端导致了这些问题(即gnuplot不知道实际字体高度,并且在可用空间中紧急关闭了太多TIC)。我的解决办法是限制tics的数量,同时允许自动放置ytics,但我找不到关于这个主题的任何东西 通常,您可以使用 s

我编写了一个bash脚本,生成文件,然后使用以下模板自动打印(最简单的工作示例):

一切正常,但当输入的数据跨越可感知的值范围时,往往会有太多的ytic

[没有足够的代表,因此下面是一个示例:http://i.stack.imgur.com/zd7XK.png]


我怀疑是epslatex终端导致了这些问题(即gnuplot不知道实际字体高度,并且在可用空间中紧急关闭了太多TIC)。我的解决办法是限制tics的数量,同时允许自动放置ytics,但我找不到关于这个主题的任何东西

通常,您可以使用

set ytics VALUE
例如:

plot sin(x)
生成此自动tics(修复:图像链接已删除) 及

生产

如果您不知道将哪个值作为值,您可以使用gnuplot4.6的STATS_min_x和STATS_max_x以及早期版本的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个tic(修复:链接到图像已删除)。

请注意,OP使用的是对数轴,因此本例中对值的解释略有不同。否则,我认为这是你能做的最好的了+谢谢你!不过,我已经偶然发现了这样的解决方案。它适用于大多数终端(如eps),但EPSLetase不适用于replot。。它往往会产生混乱的.tex文档!我想我得深入研究一下:)
set ytics 0.5
plot sin(x)
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