Во-первых, я предлагаю не использовать reread
, а вместо этого создать al oop, чтобы иметь больше контроля над ним.
set pm3d
set view map
while (some-condition) {
sp'fpf.dat'u 1:2:3 w pm3d
pause 0.1
}
Теперь на ум приходит несколько вариантов
1) Программа, которая создает данные, могла бы перезаписывать предыдущие данные вместо того, чтобы каждый раз создавать (или обрезать) файл.
2) Вместо того, чтобы помещать gnuplot в al oop на основе обновления каждого десятого секунды, используйте явную синхронизацию между созданием файла данных и последующим графиком. Есть много способов сделать это в зависимости от вашей среды и вашего контроля над соответствующими программами. Например, вы можете заменить оператор pause
вторым l oop, который вращается до тех пор, пока не изменится время изменения файла данных (конкретные доступные команды c зависят от вашей ОС и оболочки)
oldtime = timestamp
while (timestamp == oldtime) {
timestamp = system( "stat --format=%X file.dat" )
pause 0.1
}
# we exited the previous loop because the file timestamp changed
3 ) Вы можете попробовать использовать режим мультиплотинга (set multiplot
перед началом l oop), чтобы каждый новый график рисовался поверх предыдущего графика, а не заменял его. Если ваш диагноз верен, то, что белые участки связаны с неполными данными, вместо пустой области вы увидите содержимое предыдущего графика.