У меня есть значение, связанное с каждым днем, как таковое:
120530 70.1
120531 69.0
120601 69.2
120602 69.5
# and so on for 200 lines
При построении этих данных в gnuplot со строками точки данных хорошо связаны. К сожалению, в местах за неделю данные могут отсутствовать. Гнуплот рисует длинные линии на этих интервалах. Как я могу заставить gnuplot соединять точки только в последовательные дни?
Решения, которые требуют предварительной обработки данных, хороши, поскольку я уже сглаживаю их с помощью скрипта.
Вот что я использую:
set xdata time
set timefmt "%y%m%d"
plot "vikt_ma.txt" using 1:2 with lines title "first line", \\
"" using 1:3 with lines title "second line"
Пример:
Ответы:
Поставьте пустую запись (пустую строку) там, где нет данных. Из документов :
источник
Вы можете использовать любую строку, которая не является числом, в качестве значения для отсутствующих точек данных или явно указать отсутствующую строку данных с помощью
set datafile missing
команды.Если вы затем строите линии, используя
тогда Гнуплот оставит пробел.
источник
Вы также можете сделать что-то подобное, чтобы автоматически создавать промежутки, когда расстояние между значениями x превышает некоторый порог:
Вам нужно будет настроить начальные значения «предыдущий» и «текущий», а также пороговое значение («7200» в приведенном выше примере).
Функция «yornothing» использует функцию «shift» для сохранения одного предыдущего значения x. Каждый раз, когда yornothing вызывается, он возвращает либо значение y, либо «0/0», в зависимости от того, превышает ли пороговое значение абсолютное значение разности между x и его предыдущим значением.
Значение 0/0 указывает gnuplot игнорировать эту точку.
источник