Saya memiliki nilai yang dikaitkan dengan setiap hari, seperti:
120530 70.1
120531 69.0
120601 69.2
120602 69.5
# and so on for 200 lines
Saat memplot data ini dalam gnuplot dengan garis, titik data terhubung dengan baik. Sayangnya, di tempat-tempat lebih dari seminggu, titik data bisa hilang. Gnuplot menarik garis panjang selama interval ini. Bagaimana saya bisa membuat gnuplot hanya menghubungkan titik pada hari yang berurutan?
Solusi yang memerlukan preprocessing data baik-baik saja, karena saya sudah memuluskannya dengan skrip.
Inilah yang saya gunakan:
set xdata time
set timefmt "%y%m%d"
plot "vikt_ma.txt" using 1:2 with lines title "first line", \\
"" using 1:3 with lines title "second line"
Contoh:
Jawaban:
Letakkan catatan kosong (baris kosong) di mana tidak ada data. Dari dokumen :
sumber
Anda bisa menggunakan string apa pun yang bukan angka sebagai nilai untuk titik data yang hilang atau secara eksplisit menentukan string data yang hilang menggunakan
set datafile missing
perintah.Jika Anda kemudian plot garis menggunakan
maka Gnuplot akan meninggalkan celah.
sumber
Anda juga dapat melakukan sesuatu seperti ini untuk secara otomatis membuat kesenjangan ketika jarak antara nilai x melebihi ambang batas:
Anda harus menyesuaikan nilai awal "sebelumnya" dan "saat ini", dan ambang ("7200" pada contoh di atas).
Fungsi "yornothing" menggunakan fungsi "shift" untuk menyimpan satu nilai x sebelumnya. Setiap kali yornothing dipanggil, ia mengembalikan nilai y atau "0/0", tergantung pada apakah nilai absolut dari perbedaan antara x dan nilai sebelumnya melebihi ambang batas.
Nilai 0/0 memberitahu gnuplot untuk mengabaikan titik itu.
sumber