Определить и использовать вектор для галочек
Мне нравится хранить все, что я могу в переменной, так как каждый создаваемый мной скрипт 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
Чтобы использовать макросы, вы должны определить строковую переменную, которая содержит части команды, которые вы хотите использовать позже, здесь 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