LINUX.ORG.RU

о великий gnuplot!....

 ,


0

2

Возникла такая проблема. Раньше для построения графиков использовал originlab, и в нём был очень удобный сплайн, который просто немного «сглаживал» кривую сохраняя при этом общий смысл той самой кривой. В gnuplot же перепробовал все виды дефолтных сплайнов, но как-то они «колечат» всю кривую. Может быть кто-то знает как в gnuplot сделать адекватный сплайн?

очень удобный сплайн, который просто немного «сглаживал» кривую сохраняя при этом общий смысл той самой кривой

gnuplot вам не подходит, он не рассчитан на домохозяек.

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

ссылка на файл данных http://narod.ru/disk/61255574001.e89cf67bf86629e3698b12793b27d5a7/1p1100.html

так выглядят оригинальные данные без сглаживания http://s1.ipicture.ru/uploads/20120919/6URWUi7E.jpg

так выглядят данные, сглаженные функцией b-spline в originlab http://s1.ipicture.ru/uploads/20120919/Cn55nXb0.jpg при увеличенном просмотре изображений можно легко заметить, что на исходном рисунке наблюдается «угловатость» кривой

так выглядят данные, сглаженные функцией csplines в gnuplot http://s2.ipicture.ru/uploads/20120919/jTJJ61je.jpg

так выглядят данные, сглаженные функцией frequency в gnuplot http://s1.ipicture.ru/uploads/20120919/2S2VPUSj.jpg

так выглядят данные, сглаженные функцией unique в gnuplot http://s2.ipicture.ru/uploads/20120919/IYkG7Uex.jpg т.е. если присмотреться, то сглаживание в гнуплоте нифига не сглаживание. Или я не разбираюсь в изысках?

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

Я немного в шоке, как можно при обработке данных «адекватность» аппроксимации оставить на усмотрение какой-то левой фигне, при этом даже не знать критериев и уравнений, которым она пользуется, кроме абстрактного «адекватно».

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

всё очень просто. В данном случае используется «визуальный» контроль. В силу древности оборудования (дифрактометр ДРОН-2) оно умеет рисовать спектр только на бумаге, который потом при помощи engause digitizer переводится в электронный вариант и строится на ПК. Естественно, для каких-то расчётов такой спектр использовать нельзя, но оценить «качественно», что получается в процессе синтеза - можно. Естественно, сравнив положение пиков, их количество и соотношение интенсивностей между ними у электронного и бумажного вариантов, я могу сказать о том, что какая-то фигня ведёт себя адекватно. А держать целую ось для комбайна, из возможностей которого мне надо только построить и сгладить график - как-то не кошерно.

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

можно, но хотелось бы узнать, возможно ли поставленную задачу решить штатными средствами самого гнуплота. Если возможно, то как.

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

gnuplot вообще страшная во многих смыслах вещь.

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

Конечно, ты можешь на его скрипте описать moving average ( или что тебе там надо?), но это называется чистить зубы через жопу. Лучше если кривую будет вычислять что-то стороннее, а гнуплоту совать результат как и все данные.

От себя советую R + TTR (если это moving average).

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

похоже что не могу, с первого раза не увидел «originlab»

$ cat script1.gnuplot
set samples 2000
plot "test.dat" using 1:2 notitle with lines, \
"test.dat" using 1:2:(2000) s acsplines t "test" with lines
вариант 2: awk для создания промежуточных точек
$ cat script2.gnuplot
set samples 500

plot "test.dat" using 1:2 notitle with lines, \
"<awk '{if(a!=1){a=1}else{ '\
'for(i=1;i<=50;i++) '\
'print (b+($1-b)*i/50.),(c+($2-c)*i/50.);'\
'}b=$1;c=$2}' test.dat" \
using 1:2:(100) s acsplines t "test" with lines
а так, правильно люди советуют, gnuplot просто для отображения результатов.

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

так выглядят оригинальные данные без сглаживания http://s1.ipicture.ru/uploads/20120919/6URWUi7E.jpg

так выглядят данные, сглаженные функцией b-spline в originlab http://s1.ipicture.ru/uploads/20120919/Cn55nXb0.jpg при увеличенном просмотре изображений можно легко заметить, что на исходном рисунке наблюдается «угловатость» кривой

Ни фига себе, адекватность. У вас же амплитуды пиков процентов на 20 уменьшаются. По теме: python+matplotlib.

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от Axon

во первых

всё очень просто. В данном случае используется «визуальный» контроль. В силу древности оборудования (дифрактометр ДРОН-2) оно умеет рисовать спектр только на бумаге, который потом при помощи engause digitizer переводится в электронный вариант и строится на ПК. Естественно, для каких-то расчётов такой спектр использовать нельзя, но оценить «качественно», что получается в процессе синтеза - можно. Естественно, сравнив положение пиков, их количество и соотношение интенсивностей между ними у электронного и бумажного вариантов, я могу сказать о том, что какая-то фигня ведёт себя адекватно. А держать целую ось для комбайна, из возможностей которого мне надо только построить и сгладить график - как-то не кошерно.

во вторых - они уменьшаются пропорционально, поэтому смысл не теряется.

slonzhenya
() автор топика

Сгладить в Octave, нарисовать в gnuplot или mathgl

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от slonzhenya

В данном случае используется «визуальный» контроль.

А не проще тогда, раз уж это спектр, понавписывать в него гауссиан и нарисовать «штрих-код», где каждой линии на спектре будет соответствовать полоса, ширина которой будет определяться интенсивностью в линии?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от slonzhenya

Я, честно говоря, хренею.

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

А в таком виде спектр никакой ценной информации не несет.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от slonzhenya

Зачем вообще нужен этот спектр, если он совершенно не обрабатывается?

И вообще, уже давным-давно автоматизировали бы свой спектрограф, чтобы не нужно было мучиться: работы-то не так уж и много. Получил спектр, вычислил континуум, нормировал, вычислил положения и экв. ширины линий, выдал на выходе химсостав!

Eddy_Em ☆☆☆☆☆
()
Последнее исправление: Eddy_Em (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

несёт. по этому спекру можно оценить качественный состав системы.

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

у меня синтез вещества занимает трое суток. Всегда есть вероятность того, что что-то не так пошло, поэтому надо делать РФА (рентгено-фазовый анализ). Если вещество пустить дальше в работу, не удостоверившись что оно получилось «чистым», это приведёт к порче конечного продукта, и как следствие, это будут выбрашенные на ветер деньги. можно, конечно, записать и электронный вариант рентгенограммы, но это займёт сутки + «очередь» на прибор, а можно записать рентгенограмму на старом приборе - примерно 3 часа (снова таки стоимость расходников для прибора играет роль).

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

Получил спектр, вычислил континуум, нормировал, вычислил положения и экв. ширины линий, выдал на выходе химсостав!

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

для этого надо, чтобы рентгенограмма сразу записывалась на ПК, а с этим есть сложности.

В силу древности оборудования (дифрактометр ДРОН-2) оно умеет рисовать спектр только на бумаге, который потом при помощи engause digitizer переводится в электронный вариант и строится на ПК

в данном случае таких тонкостей не требуется. Мне надо получать только одно вечество, для которого известны положения и интенсивность линий (табличные данные). Если табличные данные и рентгенограмма не совпадают, то значит есть примесь, вещество дальше в работу не идёт.

а то, о чём говорите вы, в целом решается методами Ритвельда - это отдельный большой кусок работы. При этом считается, что идеальным для сглаживания считается функция pseudo-vogit. Кстати, надо попробовать сгладить свои данные в программе fituk.

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