LINUX.ORG.RU

Очень странный баг gnuplot + вопрос


0

0

Здравствуйте!
Вот имеем один маленький файл данных:
$ cat plot.data
1 0.03789473684210526316
2 0.19661654135338345865
3 0.34293650793650793651
4 5.12911111111111111111
5 60.9255
6 93.68663589743589743590

Рисуем график в gnuplot:
gnuplot> plot [1:6] [10:10.1] "plot.data" smooth unique, "plot2.data" smooth unique

И получаем очень странную линию, мягко говоря не соответсвующую действительности.
Т.е. в действительности это должна быть одна линия немного "срезающая" левый верхний угол поля, а тут мало того что эта линия вообще выходит за поле вывода (в результате чего при выводе в LaTeX-документ даже ошибка получается), плюс ко всему она откуда-то возникает далее по середине графика..

Зато если сместить данные до:
$ cat plot2.data
9 0.03789473684210526316
10 0.19661654135338345865
11 0.34293650793650793651
12 5.12911111111111111111
13 60.9255
14 93.68663589743589743590

То тогда уже:
gnuplot> plot [9:14] [10:10.1] "plot.data" smooth unique, "plot2.data" smooth unique

В общем вопрос:
- это только у меня так?
====
G N U P L O T
Version 3.7 patchlevel 3
====
Может надо обновиться? Или багрепорт писать?

Ну и ещё вопрос:
а есть ли в gnuplot сглаживание данных:
- не такое как bezier и csplines, а чтобы сглаженная линия гарантированно проходила через все заданные точки, а не только первую и последнию;
- но и не такое как unique, которая по сути только соединяет точки прямыми???

★★★★★

Сейчас рабочий ноут в ремонте, поэтому не могу проверить дома. Cyg-Win на родительский комп ставить лень да и не нужен он здесь.

Если интересно, могу проверить в пятницу на работе.

Насчёт багрепорта - в любом случае пока не обновишься до последней версии писать смысла нет. Почитай правила багрепортов в любом проекте.

Может сейчас удалённо в EPS попробую сгенерить, но геморно это.

4.0 версию безусловно стоит поставить, т.к. там много чего полезного добавили. Благо компилится быстро. Это не КДЕ.

Удачи!

Crazy_Doctor
()

Попробовал удалённо. Обе твои команды с приведёнными файлами данны дают одинаковые пустые картинки. Подозреваю, что это не совсем то, что тебе нужно. Нормально смогу попробовать разобраться только в пятницу.

G N U P L O T Version 4.0 patchlevel 0 last modified Thu Apr 15 14:44:22 CEST 2004 System: Linux 2.6.17.6-amd64

Crazy_Doctor
()
Ответ на: комментарий от Crazy_Doctor

у меня gnuplot 4.0 patchlevel.

если указывать пределы как ты- то пустые графики, если строит так: plot "1.dat" smooth unique, "2.dat" smooth unique

то вот так получается: http://torrek.homelinux.org:8023/temp/gr.png

WerNA ★★★★★
()

значит теперь груплот выбрасывает точки лежащие вне yrange сразу же, а не так что вначале строит линию, а потом кусок вырезает. Точек нет - нет линии вообще.

да, вверху patchlevel 0 ессно.

WerNA ★★★★★
()

Тьфу, блин я ошибся с командой!
gnuplot> plot [1:6] [0:0.1] "plot.data" smooth unique, "plot2.data" smooth unique
и
gnuplot> plot [9:14] [0:0.1] "plot.data" smooth unique, "plot2.data" smooth unique

Конечно же -- я не оттуда скопировал.

unDEFER ★★★★★
() автор топика
Ответ на: комментарий от unDEFER

Обновился. Действительно, стало гораздо лучше.
Всем огромное спасибо.

Но вопрос про сглаживание данных остаётся открытым.

unDEFER ★★★★★
() автор топика
Ответ на: комментарий от hyde

При sbezier тоже проходит только через первую и последнюю точки, а в середине там полная фигня получается..

unDEFER ★★★★★
() автор топика

> - не такое как bezier и csplines, а чтобы сглаженная линия гарантированно проходила через все заданные точки, а не только первую и последнию;

Вообще-то интерполяция кубическими сплайнами (csplines) удовлетворяет этому условию.

Jini ★★
()
Ответ на: комментарий от Jini

> Вообще-то интерполяция кубическими сплайнами (csplines) удовлетворяет этому условию.

Да, тогда придётся добавить третье условие:

- не такое как csplines, а чтобы сглаженная функция всюду возрастала при возрастающей последовательности данных

unDEFER ★★★★★
() автор топика
Ответ на: комментарий от Jini

Хотя может быть раньше меня csplines не устраивало в связи с первым багом, второй момент не столь критичен.
В любом случае спасибо.

unDEFER ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.