Bazı metin dosyalarında, 10000 satır ve 2 sütun olduğunu söyleyen verilerim var. plot "filename.txt" using 1:2 with lines
ile kolayca çizebileceğimi biliyorum. İstediğim şey, sadece çizim yapmak, 1000'den 2000'e kadar olan satırları veya herhangi bir başka makul seçimi söyleyelim. Bunu kolayca yapmak mümkün mü? Şimdiden çok teşekkür ederim.Gnuplot, bir satırdan bir satırdaki veriyi çizme
cevap
O gnuplot içinde "every" command aradığınız ne olduğu görülmektedir:
plot "filename.txt" every ::1000::2000 using 1:2 with lines
Alternatif öncesi işlem dosyası ilgilendiğiniz satırları seçmek için. Örneğin, awk kullanarak:
awk "NR>=1000 && NR<=2000" filename.txt > processed.txt
Ardından mevcut gnuplot komut/komut ile sonuçlanan "Processed.txt" kullanın.
Eğer biri linux veya mac osx, zaten awk olmalısınız (bu, sed ve grep gibi standart * nix araç takımının bir parçasıdır). Yukarıdaki komutu, öntanımlı bir adım olarak (gnuplot'u başlatmadan önce) çalıştırarak başlatarak, varolan dosyanızın zarar görmeden bırakılmasıyla yeni bir veri dosyası "işlenmiş.txt" oluşturur. Ardından, çizim komutlarınızda "dosyaadı.txt" yerine "işlenmiş.txt" yi kullanmalısınız. Awk kılavuzu şu adreste bulunabilir: http://www.gnu.org/software/gawk/manual/gawk.html native gnuplot çözümü için –
+1 – Pankrates
Ben sed
, grep
veya bash
gibi bazı komut satırı araçlarını öneriyoruz. Örnekte
head -n 2000 ./file.data > temp.data
ve
tail -n 1000 temp.data > temp2.data
işe yarayabilir. Fakat bu kadar büyük sayıların kafa ve kuyrukla çalışıp çalışmadığı test edilmedi.
0.
gibi bir şey deneyin help plot datafile using pseudocolumn
bkz sözde sütununu kullanarak (sistem onları örneğin yüklü olmadığı takdirde) Muhtemelen harici yardımcı olan bağımlılığımızı ortadan kesebilir
:
(Gnuplot 4.4.2 üzerinde test Linux)LINEMIN=1000
LINEMAX=2000
#create a function that accepts linenumber as first arg
#an returns second arg if linenumber in the given range.
InRange(x,y)=((x>=LINEMIN) ? ((x<=LINEMAX) ? y:1/0) : 1/0)
plot "filename.txt" using (InRange($0,$1)):2 with lines
Gnuplot NaN değerlerini yok sayar. Bu, x koordinatının belirtilen bir aralığı için benim için çalışır. Ancak satır aralığını nasıl belirleyeceğimizden emin değilim.
cutoff(c1,c2,xmin,xmax) = (c1>=xmin)*(c1<=xmax) ? c2 : NaN
plot "data.txt" u 1:(cutoff(($1),($2),1000,2000))
- 1. Yeni bir satırdaki veriyi bir dosyada yazamıyorum
- 2. gnuplot: X çizme, Y koordinatları ve bunların etiket
- 3. Gnuplot yanlış çizgiler ve bazı garip değerleri de çizme
- 4. Yeni bir satırdaki bir dosyaya nasıl metin eklenir
- 5. GnuPlot
- 6. Gnuplot
- 7. JFrame'de bir ızgara çizme
- 8. pikselli bir doku çizme
- 9. Tek bir satırdaki değişiklikleri atla
- 10. Bir satırdaki kaydırma çubuğunu gizleme
- 11. Bir satırdaki sözlükler dizisini birleştirin
- 12. MS Access SQL: Bir Satırdaki İki Sütundan Veriler İki Satırdaki Bir Sütunda Veriler Olur
- 13. Bir kılavuz modelindeki satırdaki bir düğmeyi kullanarak bir satırdaki düğme nasıl düzenlenir/silinir?
- 14. Birden çok satırdan tek bir satır oluşturma
- 15. CSS kullanarak bir kılavuz çizme
- 16. iPhone'da basit bir grafik çizme
- 17. IOS: parmağınızla bir çizgi çizme
- 18. RaphaelJS'de bir Bağlantı Çizgisi Çizme
- 19. MapsApp benzeri bir Yerleşimi Çizme
- 20. Basit bir daire çizme uiimage
- 21. Android'de bir SweepGradient ile bir yay çizme
- 22. matlab kullanarak bir düzleme bir küre çizme
- 23. Gnuplot - sağdan sola doğru arsa
- 24. gnuplot: Bir veri matrisinin 2B çizimi
- 25. Bash bir satırdaki son satırı al
- 26. MySQL: Bir satırdaki tüm değerleri 2
- 27. Linux'ta belirli bir satırdaki dosyaya metin ekle
- 28. Bir satırdaki NULL değerler sayısını sayın
- 29. mysql içinde bir satırdaki belirli sembollerin sayılması
- 30. C++ programından gnuplot kullanarak bir grafiğin nasıl çizileceği
belki bu size çok yardımcı olabilir: http://stackoverflow.com/questions/6564561/gnuplot-conditional-plotting-plot-col-acol-b-if-col-cx –