【发布时间】:2016-02-03 00:26:22
【问题描述】:
我有一个数据文件,其中矩阵拆分为不同的 gnuplot 索引。我想做一个密度图随时间变化的动画(=index)。
问题是我想保持 cbrange 的最大值和最小值对称,同时允许它随时间变化。
在下面的代码中,第一个“stats”命令只是给了我循环的块数。第二个带有前缀“B”的“stats”命令应该给我每个索引处矩阵的最大值和最小值,所以我可以正确设置 cbrange。
代码第一次进入循环时它会起作用(对于 i=1),并且 stats 会为我提供正确的数字。从第二个循环开始 (i=2) stats 给了我错误的数字...
我尝试在 stats 命令之前将 cbrange 和 zrange 设置为 [*:*],但没有帮助。
代码如下:
set terminal gif animate delay 0.5
set output 'foobar.gif'
stats 'dat-rw2d.dat' nooutput
set pm3d map
set palette defined (-1 "blue", 0 "white", 1 "red")
print STATS_blocks
do for [i=1:int(STATS_blocks)] {
print i
stats "dat-rw2d.dat" index (i-1) matrix nooutput prefix "B"
max = (B_max > -B_min)?(B_max):(-B_min)
set cbrange [-max:max]
print B_max, B_min
splot 'dat-rw2d.dat' matrix index (i-1)
}
如果我不绘制任何东西(下面的代码),统计数据会给我正确的数字。所以实际上是导致问题的“splot”。它正在修复一些规模并妨碍统计数据?我试过在统计前set cbrange [*:*],但它并没有解决问题。
do for [i=1:int(STATS_blocks)] {
print i
stats "dat-rw2d.dat" index (i-1) matrix nooutput prefix "B"
max = (B_max > -B_min)?(B_max):(-B_min)
set cbrange [-max:max]
print B_max, B_min
}
【问题讨论】:
-
会在
splot帮助之后添加set cbrange [*:*]吗? -
我试过
set cbrange [*:*],但它不起作用。我也在其他地方读过这个技巧......但它不起作用。 -
在
help xrange(适用于所有范围)中,它表示您需要一个星号来进行自动缩放。 -
我知道用于自动缩放的星号。问题是即使强制执行自动缩放,
stats在splot命令之后仍然给出错误答案。这似乎是一个真正的错误。 -
对我来说它看起来像一个 gnuplot 错误,我什至尝试添加一个
reset,但它仍然失败
标签: gnuplot