Борьба с gnuplot, чтобы заставить работать график ящиков

#datetime #gnuplot

#datetime #gnuplot

Вопрос:

У меня есть файл данных со следующими столбцами:

 Year:Month    Data1    Data2   Data3
 

Для заданного диапазона дат (скажем, за последний год) я хотел бы построить график с использованием блоков, чтобы в каждом месяце было 3 блока рядом (каждый на 1/3 полной ширины месяца), по одному для Data1, Data2 и Data3. Но я не могу заставить gnuplot играть. Вот что я пробовал:

 set xdata time
set timefmt "%Y:%m"
set style fill solid
set boxwidth 890000 absolute # Third of a month in seconds, approx
plot ["2020:02" : "2021:02"][0:] "file.dat" using 1:2 with boxes, "file.dat" using ($1 - 890000):3 with boxes, "file.dat" using ($1   890000):4 with boxes
 

Боюсь, я неправильно понимаю разницу между «использованием 1: 2» и «использованием ($1 …):2», но не уверен, как — результирующий график имеет правильную шкалу / значения Y, но шкала X повсюду.

Ответ №1:

using ($1) Не учитывает формат времени. Попробуйте using (timecolumn(1, "%Y:%m")) вместо этого.

 plot ["2020:02" : "2021:02"][0:] "file.dat" using 1:2 with boxes, 
                                 "file.dat" using (timecolumn(1, "%Y:%m")-890000):3 with boxes, 
                                 "file.dat" using (timecolumn(1, "%Y:%m") 890000):4 with boxes