2012-08-08 29 views
8

Tôi vẽ đồ thị và tôi muốn bỏ qua tất cả các điểm có y = 0. Tôi không biết một ưu tiên mà tại đó các dòng kết quả này xuất hiện, vì vậy tôi không thể nói gnuplot chỉ sử dụng một số dòng.Bỏ qua các điểm bằng y = 0

Có thể hoặc tôi phải chỉnh sửa tập dữ liệu của mình (và thay thế y = 0 cho một nơi nào đó nằm ngoài phạm vi của tôi)?

+0

Trước tiên, bạn nói "bỏ qua tất cả các điểm", nhưng sau đó bạn nói "chỉ sử dụng một số dòng". Bạn có nói rằng bạn muốn bỏ qua các đường mà vượt qua trục y trong phạm vi của tập dữ liệu của bạn? – JAB

+0

@JAB Ý nghĩ đầu tiên (và nếu tôi có một tập dữ liệu nhỏ) là tự nói với gnuplot những dòng nào để sử dụng, nhưng điều này là không thể thực hiện được trong trường hợp của tôi. Có, những gì tôi muốn là để lại các đường chéo chéo y – iomartin

Trả lời

18

Bạn có thể làm được điều này khá dễ dàng:

plot "mydataset.dat" u 1:($2 == 0 ? NaN : $2) 

Ở đây chúng ta sử dụng toán tử ternary gnuplot để thay thế các giá trị của 0 với NaN. Gnuplot âm thầm bỏ qua NaN, do đó sẽ hoạt động tốt.

+0

Hoàn hảo, đó là chính xác những gì tôi đang tìm kiếm! – iomartin

10

Cách thanh lịch để làm điều đó là sử dụng:

set datafile missing

Ví dụ, bạn có thể làm:

set datafile missing '0'

và gnuplot sẽ bỏ qua các mục với các biểu tượng 0. Bạn có thể sử dụng chuỗi cũng như NaN hoặc 0,000.

+0

nếu có điểm với x = 0 thì sao? Nó sẽ không bỏ qua nó? – iomartin

+1

Vâng, đó là một ví dụ mà bạn muốn bỏ qua các mục với 0. Đó là một giá trị tùy chỉnh cho gnuplot biết giá trị cần bỏ qua. –

+0

Cảm ơn bạn! Trong trường hợp của tôi, dây DHT-22 bị lỏng nên đặt datafile bị thiếu "0.00" cho phép nó chỉ bỏ qua các chỉ số sai. – SDsolar

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