Построение строк файла как функция первой строки в последовательности с gnuplot - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь анимировать временную эволюцию плотности вероятности волновой функции системы (1D), и уже создал файл с амплитудой каждой точки в x: первая строка файла - это x координатное разделение и следующие строки являются амплитудой этих точек на каждом временном шаге.

Это упрощенный пример:

0.0 0.2 0.4 0.6 0.8 1.0 #x partition
2.0 2.1 2.3 2.2 1.9 1.6 #1st time-step amplitud value of each 
1.9 2.0 2.2 2.2 2.1 1.9 #2nd time-step amplitud value of each
          .
          .
          .
4.0 4.2 3.9 3.5 3.2 2.9 #nth time-step amplitud value of each

Дело в том, что на каждом временном шаге (i) мне приходится строить i-й ряд по сравнению с первым, и я не знаю, как это сделать.

В конечном итоге я хотел бы сделать анимированный GIF-файл с помощью gnuplot, используя этот файл данных.

1 Ответ

0 голосов
/ 10 апреля 2019

Ваши данные в матричном формате, вы должны использовать ключевое слово matrix.

Проблема в том, что gnuplot хочет, чтобы либо координаты x и y были указаны в первой строке и первый столбец (matrix nonuniform) или ни того, ни другого.

Чтобы обойти это, вам необходимо добавить время в качестве y координаты в первом ряду, что не так уж сложно:

plot "< awk '{ print NR-1,$0}' file.dat" matrix nonuniform using 1:3:2 with l pal z

даст вам каждую строку в другом цвете, например

Я думаю, что вопрос анимированного GIF, упомянутый в заголовке, следует задавать отдельно, но, вероятно, этого вопроса в сочетании с вышеупомянутым будет достаточно длявам сделать это.

...