Определить и использовать вектор для галочек

Мне нравится хранить все, что я могу в переменной, так как каждый создаваемый мной скрипт gnuplot генерирует десятки графиков одновременно, и это облегчает отслеживание. Вот образец одного участка (представляющая интерес переменная: ytics):

# Setup style
set terminal pngcairo dashed
unset key
set style line 1 pointtype 7 pointsize 0.3 linecolor rgb "black"

# Setup the plots' ytics
ytics_H2 = (0,0.002,0.004,0.006,0.008,0.010,0.012);

# Store the range for each variable
min_T  = 200; max_T  = 1800;
min_H2 = 0;   max_H2 = 0.012;



# Plot
set output 'my_output_H2.png'
set ytics ytics_H2
set xrange [min_T :max_T ]
set yrange [min_H2:max_H2]
plot 'scatter.dat' using 1:2 with points linestyle 1

Вот результат:

Как видите, печатается только последний тик. Если я заменю переменную ytics по вектору, к которому он установлен, все работает как положено.

2 ответа

Решение

Для таких случаев использования у gnuplot есть макросы:

set macros # necessary only for v < 5.0
ytics = "(1, 5, 8)"
set ytics @ytics
plot x

Вывод скрипта с помощью gnuplot 5.0

Чтобы использовать макросы, вы должны определить строковую переменную, которая содержит части команды, которые вы хотите использовать позже, здесь ytics = "(1, 5, 8)", Позже вы можете использовать его содержимое с @ytics,

Важным фактом здесь является то, что gnuplot первым заменяет @ytics с содержимым строковой переменной yticsто есть расширяется set ytics @ytics в set ytics (1, 5, 5) и только тогда выполняет всю команду.

Поскольку ваши интервалы фиксированы и одинаковы, вы также можете использовать start, incr, end форма:

set ytic 0, 0.002, 0.012
Другие вопросы по тегам