2011-09-17 41 views
24

Tôi đang cố gắng để vẽ trong gnuplot một hàm log-định kỳ: cos ((log (abs (t-Tc)) * PI/log10 (lambda)) + phi)

Nhưng vì bản chất của log (x) gần với x = 0, cốt truyện trở nên xấu xí.Gnuplot độ phân giải trục x

Làm thế nào để vẽ một hàm log-định kỳ trong gnuplot để nó trông đẹp?

kịch bản cốt truyện của tôi trông như thế này:

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

Sau khi thiết lập:

set samples 10000 

tôi nhận được một đồ thị tốt hơn nhiều tìm kiếm: log-periodic function with set samples 10000

+2

Tôi không thể tin rằng 100 là mặc định. Ngay cả abs (x) là xấu xí. Tôi đã mở "make" thiết lập mẫu 1000 'mặc định "tính năng yêu cầu, cho phép xem những gì sẽ xảy ra - https://sourceforge.net/p/gnuplot/feature-requests/376/ – Bulwersator

+0

Tỷ lệ khác nhau cho các chức năng khác nhau: http: // stackoverflow.com/questions/19524582/different-number-of-samples-for-different-functions –

+0

Không thể tin rằng nó đã bị từ chối quá nhanh! @Bulwersator – innisfree

Trả lời

26

Nếu bạn muốn tăng độ phân giải thử

set samples <X> 

nơi <X> là một số nguyên. Theo mặc định, số nguyên này được đặt thành 100. Tăng số đó lên nhu cầu của bạn.

Mặc dù, số nguyên càng cao thì càng mất nhiều thời gian để gnuplot vẽ đồ thị.

Các vấn đề liên quan