Отвлекаясь от ответа Рафаэля Рота и просматривая документацию по gnuplot, вы, вероятно, сможете достичь этого с помощью небольшой магии оболочки для наборов данных, которые также не разделяют значения X.
plot '< tail -r test2.dat | cat test1.dat -' using 1:2 with filledcurves closed
OneПри тестировании я заметил, что вы должны убедиться, что в конце test2.dat у вас есть символ новой строки, иначе tail -r
не будет работать правильно (tac
, вероятно, тоже будет работать, но это не так.установлен на моем Mac. Это работает, беря первый файл данных и добавляя второй файл данных к первому в обратном порядке (я предполагаю, что первый и второй файлы данных уже упорядочены с использованием возрастающих значений X). Другими словами, насколько gnuplot являетсяЧто касается данных, то данные возрастают по x, а затем убывают по x. Поскольку мы использовали with filledcurves closed
, gnuplot обрабатывает все точки как один многоугольник, а затем соединяет их. Что касается сглаживания данных, то это совершенно другой вопрос. Просто взглянем надокументация, gnuplot предлагает несколько алгоритмов сглаживания, но их нужно будет использоватьна ваши данные раньше времени.Следующее полностью не проверено, но, надеюсь, будет чем-то похожим на то, что вы хотите (оно также, вероятно, будет работать только в среде типа Unix) ...
set table 'smoothed1'
plot 'test1.dat' using 1:2 smooth beizer #beizer is just an example see "help plot datafile smooth" for more options
unset table
set table 'smoothed2'
plot 'test2.dat' using 1:2 smooth beizer
unset table
plot '< tail -r smoothed2 | cat smoothed1 -' using 1:2 with filledcurves closed
Если это не сработает, возьмитепосмотрите на сгенерированные gnuplot файлы "smoothed1" и "smoothed2" и посмотрите, дает ли это какие-либо подсказки (например, есть ли дополнительные строки, которые следует удалить?)