Если ваши данные в одной строке, как показано на рисунке, вы можете достичь этого, используя график для цикла синтаксиса по индексу столбца и вычисления значения x из этого индекса. Мы можем захватить столбец с помощью столбца , который получает указанный номер столбца.
set boxwidth 1
set datafile separator comma # only if data is comma separated
plot for [i=1:5] (2*i-1):(column(i)) with boxes
Если необходимо обеспечить тот же тип линии используется каждый раз, можно явно указать его в команде сюжета.
plot for [i=1:5] (2*i-1):(column(i)) with boxes lt 1
Кроме того, если ключ будет создан, и мы не хотим каждый сюжет о генерировать один, мы можем проверить и дать только название непустое на первой итерации (пустой заголовок обрабатывается так же, как и название).
plot for [i=1:5] (2*i-1):(column(i)) with boxes lt 1 title (i==1)?"Title":""
Если данные разделены на строки, как нормальный формат, это может быть получен другим способом.
В Gnuplot имеется несколько псевдоокусов (см. help pseudocolumns
). В вашем случае представляет интерес столбец 0. Столбец 0 дает номер строки данных, начинающихся с 0. Таким образом, чтобы получить последовательные нечетные числа, подобные этому, вы можете использовать 2*$0+1
.
Например, если ваши данные (хранящиеся в datafile.txt) выглядит
3342336
3375103
7110653
32770
0
и вы хотите, чтобы построить коробки длины 1 при тех значениях, вы можете сделать
set boxwidth 1
plot "datafile.txt" u (2*$0+1):1 with boxes
Предполагается ли, что данные находятся в нескольких строках или действительно ли они отформатированы как одна разделенная запятыми строка? – Matthew