Tom*_*art 10 plot graph 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中的字符串.有没有办法将字符串映射到颜色?
目前输出如下:

但是我不喜欢渐变调色板,因为在这种情况下它没有意义.我更喜欢普通的传奇,只有一种颜色和类的名称.知道怎么做吗?
你如何做到这一点的方法是使用awk.
使用数据文件Data.csv:
5.4452 4.6816 blue
1.2079 9.4082 red
7.4732 6.5507 red
2.3329 8.2996 red
3.4535 2.1937 green
1.7909 2.5173 green
2.5383 7.9700 blue
Run Code Online (Sandbox Code Playgroud)
和这个脚本:
set pointsize 3
plot "< awk '{if($3 == \"red\") print}' Data.csv" u 1:2 t "red" w p pt 2, \
"< awk '{if($3 == \"green\") print}' Data.csv" u 1:2 t "green" w p pt 2, \
"< awk '{if($3 == \"blue\") print}' Data.csv" u 1:2 t "blue" w p pt 2
Run Code Online (Sandbox Code Playgroud)
你得到这个情节:

awk做的只是检查数据文件的第三个参数,如果它有一些值,则只打印该行:如红色或蓝色.
您还可以使用渐变去除调色板.
通过使用gnuplot 迭代可以进一步改进脚本.