Как построить линию в xmgrace, используя Bash или сценарий оболочки - PullRequest
0 голосов
/ 25 февраля 2020

Я хочу построить вертикальную пунктирную красную линию в конкретной точке (скажем, 2.2) в xmgrace, используя скрипт

1 Ответ

2 голосов
/ 28 февраля 2020

Вы можете использовать внешний инструмент, такой как pygrace , или использовать встроенные возможности Grace. Они были затронуты здесь, в SO ранее (см., Например, здесь или здесь ).

Следующий скрипт отображает файл данных (exp.dat) как пустые кружки, другой файл данных (line.dat) в виде красной пунктирной линии и устанавливает диапазоны, метки и основные отметки двух осей:

READ NXY "exp.dat"
READ NXY "line.dat"

WORLD XMIN 0
WORLD XMAX 5
WORLD YMIN 1
WORLD YMAX 5
xaxis label "My x label"
xaxis tick major 1
yaxis label "My y label"
yaxis tick major 1

s0 line type 0
s0 symbol 1
s0 symbol size 1.5

s1 linestyle 2
s1 color 2

Для создания вертикальной красной пунктирной линии, проходящей через 2.2 содержимое line.dat должно быть примерно таким:

2.2 0
2.2 10000

Такой файл можно создать в сценарии bash с помощью следующей команды:

echo "2.2 0\n2.2 10000" > line.dat

Сохранить сценарий как mybatch.xmg и назовите его так:

xmgrace -batch mybatch.xmg

Если вы хотите напрямую сгенерировать вывод, вы можете добавить эту директиву:

PRINT TO "myplot.eps"
DEVICE "EPS" OP "level2"
PRINT

, которая сохранит ваш график как myplot.eps ( добавьте -nosafe при вызове xmgrace, чтобы избавиться от предупреждений).

...