Если ваши точки данных равноудалены (как те, что вы указали), возможен и альтернативный хак, если объединить fsteps
и steps
и сместить значение x на половину расстояния от точки к точке:
plot "delete.dat" i 0 pt 7 ps 2 lc "black" not, \
'' i 1 pt 7 ps 2 lc "red" not, \
'' i 2 pt 7 ps 2 lc "green" not, \
'' u ($1-1.0):2 i 0 w steps lc "black", '' u ($1+1.0):2 i 0 w fsteps lc "black" not, \
'' u ($1+0.5):2 i 1 w steps lc "red", '' u ($1-0.5):2 i 1 w fsteps lc "red" not, \
'' u ($1-0.5):2 i 2 w steps lc "green", '' u ($1+0.5):2 i 2 w fsteps lc "green" not
Хитрость в том, что одна steps
или fsteps
пропустит либо последнюю, либо первую точку, и линия будет заканчиваться в воздухе, поэтому оба должны быть нанесены сверхудруг друга с одинаковым стилем прорисовки.
Нужно позаботиться о правильном знаке: если x положительный, steps
получит пониженную передачу и fsteps
получит повышающую передачу;и наоборот, если x отрицательно.
Мой ответ определенно не такой «надежный», как у теожа, но, возможно, легче понять.