2012-03-12 20 views
17

Chỉ cần một câu hỏi đơn giản (tôi tưởng tượng) nhưng, cho phép nói rằng tôi có các tập tin dữ liệu sau:Có "tự động" x

# no x data, it's sampled for instance each second. 
23 42 48 
49 89 33 
39 44 97 

thế nào (nếu có thể) tôi có thể vẽ mà như thể nó là

1 23 42 48 
2 49 89 33 
3 39 44 97 

sử dụng 1,2,3, .. (cột đầu tiên) dưới dạng x?

làm điều gì đó như: plot "file.dat" using (lineNumber):3 chẳng hạn.

Trả lời

13

sử dụng awk để liệt kê dòng. Ví dụ. để vẽ đường thứ ba của tệp dữ liệu, hãy sử dụng:

plot "<awk '{print FNR,$0}' DATAFILE" u 1:4 

Lưu ý rằng awk thêm lanh, vì vậy cột đầu tiên là lanh.

Nhưng trong thực tế, bạn có thể có nó dễ dàng hơn nhiều cho 2D lô

plot "DATAFILE" u 3 

cũng làm như vậy, gnuplot được tự động bằng cách sử dụng dòng số cho trục x

+0

cảm ơn bạn, hoàn hảo :) – user978548

35

Nếu bạn không muốn để dựa vào awk, gnuplot cũng có thể làm điều này. Xem help plot datafile usinghelp plot datafile using pseudocolumns. Hãy thử:

plot "file.dat" using (column(0)):3 
+0

cảm ơn bạn! – user978548

+12

Bạn thậm chí có thể sử dụng 'plot 'file.dat" bằng cách sử dụng 0: 3' – John

+0

Hoặc, như được chỉ ra trong câu trả lời khác, thậm chí là 'plot" file.dat "sử dụng 3' – vitaly

1

Hoặc đơn giản hơn, bạn cũng có thể gõ: plot "file.dat" u ($0):3

này sẽ cho phép bạn thay đổi biến chỉ số tuyến tính, như bạn sẽ bất kỳ cột khác

Chẳng hạn như mở rộng quy mô của 2 và thêm 1: plot "file.dat" u (($0)*2+1):3

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