2011-09-17 4 views
24

Я пытаюсь построить в Gnuplot лог-периодической функции: соз ((LOG (абс (т-Тс)) * PI/log10 (лямбда)) + Фи)

Но из-за характера log (x), близкого к x = 0, сюжет становится уродливым.Gnuplot разрешение оси х

Как построить лог-периодическую функцию в gnuplot, чтобы она выглядела хорошо?

Мой сюжет сценарий выглядит следующим образом:

phi = 1 
TcFormated = 9.67e+8 
lambda = 2 
PI = 3.1415 

g(t) = abs(cos((log(abs(t-TcFormated))*PI/log10(lambda)) + phi)) 

set tmargin at screen 0.01 
set bmargin at screen 0.99 
set lmargin at screen 0.01 
set rmargin at screen 0.99 

set xrange [8.4e+8:1.04e+9] 
set yrange [0:1] 
unset xtics 
unset ytics 
plot g(x) t '' w l 

pause -1 

log-periodic function

После установки:

set samples 10000 

Я получил гораздо лучше выглядит график: log-periodic function with set samples 10000

+2

Я не могу поверить, что 100 по умолчанию. Даже abs (x) является уродливым. Я открыл «make» набор образцов 1000 «по умолчанию» запрос функции, позволяет увидеть, что произойдет - https://sourceforge.net/p/gnuplot/feature-requests/376/ – Bulwersator

+0

Различные тарифы для разных функций: http: // stackoverflow.com/questions/19524582/different-number-of-samples-for-different-functions –

+0

Не могу поверить, что он был отброшен так быстро! @Bulwersator – innisfree

ответ

26

Если вы хотите, чтобы увеличить разрешение попробовать

set samples <X> 

где <X> целое. По умолчанию для этого целого числа установлено значение 100. Увеличьте это число до ваших потребностей.

Хотя, чем выше выбранное целое число, тем дольше он будет использовать gnuplot для построения графика.

Смежные вопросы