Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
766 views
in Technique[技术] by (71.8m points)

variables - How to make points one color when a third column equals zero, and another color otherwise, in Gnuplot?

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...