Reputation: 241
I need to vary the point color for a row of values based on the color in one column. The data:
# x y z
1, 3, 0
1, 5, 6
3, 5, 2
4, 5, 0
The color should be one value if the column is zero and a different color if the value in the third column is non-zero.
So, I'm assuming:
plot "./file.dat" u 1:2:3 with points palette
as found here: https://stackoverflow.com/a/4115001 will not quite work.
In the above example data, that gnuplot command provides three different colors instead of the two I'm looking for.
Upvotes: 24
Views: 29402
Reputation: 7659
This is probably close to what you want:
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
You could go one step further and remove the "noise":
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
if only the differentiation between zero and non-zero matters.
Upvotes: 31
Reputation: 241768
You can adjust the palette by
set palette defined (-0.1 "blue", 0 "red", 0.1 "blue")
Upvotes: 1