gnuplot: аномальное поведение 'set xrange' на анимированном 2D-графике данных MD - PullRequest
0 голосов
/ 07 мая 2018

Я работаю на компьютере с Windows 7, используя gnuplot 5 Patch level 1.

Я готовлю анимацию последовательности межатомных расстояний вдоль траектории из расчета молекулярной динамики.

Следующий скрипт отлично работает:

set termopt enhanced    # turn on enhanced text mode
# --- GRAPH a

set yrange [0.0:25.0]
set xlabel 't (fs)'
set ylabel "R_{ij} (A)"
set key box opaque

stats 'NeH2+_125K_TRAY171.DAT'

do for [i=1:STATS_records:2001] {
   plot 'NeH2+_125K_TRAY171.DAT' using ($1/10):2 every ::1::i with lines title 'R_{NeH_{1}}', \
        'NeH2+_125K_TRAY171.DAT' using ($1/10):3 every ::1::i with lines title 'R_{H_{1}H_{2}}',\
        'NeH2+_125K_TRAY171.DAT' using ($1/10):4 every ::1::i with lines title 'R_{NeH_{2}}',
}

конец скрипта

Однако x-диапазон обновляется во время симуляции и может сильно отвлекать, поскольку файл данных довольно длинный.

Чтобы избежать обновления оси X, я попытался использовать команду set xrange

set xrange[0.0:7.0]
set yrange [0.0:25.0]
set xlabel 't (fs)'
...

Когда анимация запускается, она работает правильно, но после построения нескольких тысяч данных она останавливается. Кроме того, в окне консоли приложения нет сообщений об ошибках.

Я протестировал оба сценария на втором компьютере под управлением Windows 7 с gnuplot 5.2 и наблюдал одинаковое поведение.

Видимо, сценарии верны. Кто-нибудь может определить проблему?

Заранее спасибо.

1 Ответ

0 голосов
/ 07 мая 2018

Обратите внимание, что set yrange также применяется к вызову stats (да, yrange, потому что вы не указываете ни один столбец).

Так что в любом случае у вас может быть меньше итераций сюжета, чем вы ожидаете. Попробуйте

reset
f = 'NeH2+_125K_TRAY171.DAT'
stats f

set xrange [0.0:7.0]
set yrange [0.0:25.0]
do for [i=1:STATS_records:2001] {
    plot f using ($1/10):2 every ::1::i title 'R_{NeH_{1}}', \
        '' using ($1/10):3 every ::1::i title 'R_{H_{1}H_{2}}',\
        '' using ($1/10):4 every ::1::i title 'R_{NeH_{2}}'
}
...