Как установить свойство для всех множеств в xmgrace в одном выражении - PullRequest
0 голосов
/ 25 апреля 2020

Предположим, у меня есть file1.dat и file2.dat. Я хочу построить их и для обоих наборов установить ширину линии равной 2 (для столбцов ошибок) и символ в виде круга. В настоящее время я вызываю

xmgrace -batch batch.xmg

с этим batch.xmg:

READ XYDY "file1.dat"
READ XYDY "file2.dat"

S0 LINEWIDTH 2
S0 SYMBOL 1
S0 ERRORBAR LINEWIDTH 2
S0 ERRORBAR RISER LINEWIDTH 2

S1 LINEWIDTH 2
S1 SYMBOL 1
S1 ERRORBAR LINEWIDTH 2
S1 ERRORBAR RISER LINEWIDTH 2

Он работает, как и ожидалось, однако batch.xmg становится большим и очень повторяющимся по мере количества файлов данных (и , следовательно, множества) увеличивается. Кроме того, всякий раз, когда я хочу изменить общее свойство, я должен go пройти через все наборы и изменить соответствующее значение (или использовать инструмент обработки текста, такой как sed).

Затем я спрашиваю: есть ли способ сделать глобальное утверждение, которое устанавливает свойство для всех множеств? Например, что-то вроде

SETS SYMBOL 1

Я думал, что оператор будет работать в соответствии с этим руководством , но это не так. Xmgrace вызывает ошибку и dr aws не символ для всех наборов.

1 Ответ

0 голосов
/ 25 апреля 2020

Я пропустил раздел По умолчанию . Доступны следующие операторы:

DEFAULT LINESTYLE number
DEFAULT LINEWIDTH number
DEFAULT COLOR number
DEFAULT CHAR SIZE number
DEFAULT FONT number
DEFAULT SYMBOL SIZE number
DEFAULT SFORMAT number 

Я обнаружил, что вам нужно написать их до операторов чтения , если вы хотите, чтобы к ним применялись значения по умолчанию. Например, это установит ширину линии и стиль линии для file2.dat, но не для file1.dat:

READ XYDY "file1.dat"

DEFAULT LINEWIDTH 3
DEFAULT LINESTYLE 3

READ XYDY "file2.dat"

Однако обратите внимание, что, к сожалению, не все свойства доступны (например, Вы не можете установить DEFAULT SYMBOL 1).

...