2012-01-03 24 views
17

Tôi cần thay đổi màu điểm cho một hàng giá trị dựa trên màu trong một cột. Dữ liệu:Làm thế nào để làm cho điểm một màu khi một cột thứ ba bằng không, và một màu khác, trong Gnuplot?

# x y z 
1, 3, 0 
1, 5, 6 
3, 5, 2 
4, 5, 0 

Màu phải là một giá trị nếu cột bằng 0 và màu khác nếu giá trị trong cột thứ ba khác 0.

Vì vậy, tôi giả:

plot "./file.dat" u 1:2:3 with points palette 

như được tìm thấy ở đây: https://stackoverflow.com/a/4115001 sẽ không hoàn toàn công việc.

Trong dữ liệu ví dụ trên, rằng lệnh gnuplot cung cấp ba màu sắc khác nhau thay vì hai tôi đang tìm kiếm.

+0

JessicaB, vui lòng đánh dấu câu trả lời tốt nhất. Cảm ơn bạn. :) –

+0

điều kiện tổng quát hơn: http://stackoverflow.com/questions/8717805/vary-point-color-in-gnuplot-based-on-value-of-one-column –

Trả lời

1

Bạn có thể điều chỉnh bảng màu bởi

set palette defined (-0.1 "blue", 0 "red", 0.1 "blue") 
+0

Điều này khiến màu đỏ ở xung quanh ba và màu xanh ở 0 và 6 và do đó không đạt được mục tiêu của OP. Tôi đã xây dựng trên ý tưởng của bạn, xem bên dưới! – vaettchen

25

Đây có lẽ là gần với những gì bạn muốn:

set palette model RGB defined (0 'red', 1 'green') 
plot[0:5][0:6] "file.dat" u 1:2:($3 == 0 ? 0 : 1) with points palette 

Bạn có thể đi một bước xa hơn và loại bỏ các "tiếng ồn":

unset key 
unset colorbox 
plot[0:5][0:6] "file.dat" u 1:2:($3 == 0 ? 0 : 1) with points pt 7 ps 3 palette 

nếu chỉ có sự khác biệt giữa zero và các vấn đề khác không.

+0

CẢM ƠN BẠN !!! Những công việc này! Tôi đánh giá cao sự giúp đỡ. – JessicaB

+6

@JessicaB: Bạn có thể đánh dấu mục này là đã trả lời không? – vaettchen

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