我有一个如下所示的数据文件:
1 1.0 0
2 1.5 0
3 0.0 1
4 1.2 2
5 1.0 1
6 1.1 1
Run Code Online (Sandbox Code Playgroud)
第一列是我的X值,第二列是我的Y值,第三列是颜色.我想根据第三列对每个线段进行着色.所以前两个线段是"颜色1",下一个是"颜色2",下一个是"颜色3",最后两个再次是"颜色1".
我试过了:
plot 'file.dat' using 1:2:3 with lines rgb variable;
Run Code Online (Sandbox Code Playgroud)
但我的线条全黑了.
这可能在gnuplot中吗?
谢谢,加布
我想绘制分类结果并标记真正的类.所以,基本上我需要的是为字符串列中的每个点指定颜色.
数据集看起来像这样:
5.1 3.5 1.4 0.2 Iris-setosa
我最终得到了脚本跟随解决方案(感谢这里的答案:如果在第三列等于零时将点设为一种颜色,否则在Gnuplot中将另一种颜色设为另一种颜色?)
set palette model RGB defined (0 "red",1 "blue", 2 "green")
plot 'iris.data' using 1:2:5 notitle with points pt 2 palette
Run Code Online (Sandbox Code Playgroud)
在原始数据集中,我用数字替换了字符串标签,因为我不知道如何使用gnuplot中的字符串.有没有办法将字符串映射到颜色?
目前输出如下:

但是我不喜欢渐变调色板,因为在这种情况下它没有意义.我更喜欢普通的传奇,只有一种颜色和类的名称.知道怎么做吗?
我有一个包含四列数据的文件.我只使用前三个绘制3D绘图,现在不需要第四个绘图.
我想知道如果它满足某些条件,如何改变点的颜色.例如,如果点的值(x,y,z)大于(16,400,65),我想将其绘制为灰色.如果它们比那个小,我想用红色.
我试图使用awk同样的东西,它只是用不同的颜色绘制两个点.这是我的代码.
gnuplot>splot "< awk '{if( ($2 > \"16\") || ($1 > \"400\") || ($3 > \"65\")) print}'
./8_77_non_pareto_data.dat " u 2:1:3 w p pt 8 lc rgb "grey", \
"< awk '{if( ($2 < \"16\") || ($1 < \"400\") || ($3 < \"65\")) print}'
./8_77_non_pareto_data.dat " u 2:1:3 w p pt 8 lc rgb "red", \
"./8_77_pareto_data.dat" u 2:1:3 w i lt 1 lc rgb "blue" t "Pareto points"
Run Code Online (Sandbox Code Playgroud)
我的数据文件如下所示:
48 15.057599573464184 …Run Code Online (Sandbox Code Playgroud) 我有一个包含4列数据的数据文件,前三列指定一个点(x,y,z),第四列是1,2或3 - 我希望该点基于值的颜色着色第四列(即,如果它是2,颜色为红色,如果为3,绿色,如果为1,蓝色)