2012-08-22 22 views
7

Örnek eksik veri noktaları ile çizgi çizmek için:nasıl gnuplot içinde

Sadece biri yukarıdaki gibi bir grafik çizmek istiyorum

enter image description here

: Bazı eksik veri noktaları bir çizgi, hat süreksiz olduğu anlamına gelir.

Bunu nasıl yapabilirim?

cevap

9

Bu, veri dosyanızın neye benzediğine bağlıdır. Bunu çizmek için

#datafile 
1 2 
2 3 

4 2 
5 3 

ve ardından komut:

düşünün:

Eğer veri dosyası bir boşluk eklerseniz, bu (Bu en kolay yoludur) olanlar bitişik noktaları bağlanmıyor
plot 'datafile' u 1:2 w linespoints 

Eksik verilerle oynayabileceğiniz başka numaralar da var: set datafile missing. Bunun için iyi bir referans yerleşik yardımdır (help missing).

+0

teşekkür ederiz, acaba benim veri dosyası sadece 2 sütun içermiyor: –

+0

Teşekkür ama benim da tafile birçok sütun içeriyor, bu sütunların yalnızca 1'i veri noktasını kaçırıyor. Yani boş bir satır ekleyemiyorum, bu diğer sütunların/çizgilerin süreksiz olmasına neden olacaktır. Bu sütun için ayrı bir dosya eklemeyi deneyeyim, işe yarayabilir. –

+0

@CharryWong - İşte buradaki "set data dosyası eksik" cevabımın bir kısmı geliyor. – mgilson

0

Tek bir çizim için, eksik bir değeri belirten karakter dizesini belirtmek için set datafile missing ve gnuplot'un eksik bir değer için satırda bir boşluk bırakmasını sağlamak için using $ belirtecini kullanın. Farklı using belirticileri, gnuplot documentation for set datafile missing'da açıklanmaktadır.

Sütun numarası değişken olarak belirtildiğinde, bu biraz daha zorlayıcıdır. Biz $ sözdizimi kullanmaya çalışırsanız çalışmıyor,

do for [i=2:10] { 
    plot 'datafile' using ($1):i with lines 
} 

Ancak: Örneğin, bir değişken kullanarak sütun numarasını belirtmek olabilecek bir dosya birinin birden çok sütun çizmek için

do for [i=2:10] { 
    plot 'datafile' using ($1):($i) # ERROR! 
} 

çözüm ayrıca eksik değerler için boşlukları bırakır, column function kullanmaktır:

do for [i=2:10] { 
    plot 'datafile' using ($1):(column(i)) with lines 
}