Gnuplot:使用基于颜色的虹膜数据绘制点
Gnuplot: plotting points with color based iris data
我有这个虹膜数据...
5.1 3.5 1.4 0.2 Iris-setosa
4.9 3 1.4 0.2 Iris-setosa
7 3.2 4.7 1.4 Iris-versicolor
6.4 3.2 4.5 1.5 Iris-versicolor
7.1 3 5.9 2.1 Iris-virginica
6.3 2.9 5.6 1.8 Iris-virginica
.
.
.
我使用 gnuplot 得到了图形(绘图 'c:\iris.data')
但我想要第 5 列颜色组的点(鸢尾花、鸢尾花、鸢尾花)
例如。 . .
iris-setosa = 红色,iris-versicolor= 绿色,iris-virginica = 蓝色
如何获得彩色图表?
请回答。 . . .
用数字索引替换您的颜色,例如:
5.1 3.5 1.4 0.2 0
4.9 3 1.4 0.2 0
7 3.2 4.7 1.4 1
6.4 3.2 4.5 1.5 1
7.1 3 5.9 2.1 2
6.3 2.9 5.6 1.8 2
一个简单的搜索和替换脚本应该能够为您做到这一点。
然后你可以使用 Gnuplot 的 linecolor palette
,例如如下:
plot "iris.data" u 1:2:5 w p lc palette
要像这样调整使用的颜色:
set palette defined (0 "red", 1 "green", 2 "blue")
请注意,虽然我在这里选择使用确切的索引,但调色板定义是相对的,我还不如使用:
set palette defined (-11 "red", -2 "green", 7 "blue")
如果您想在数据文件中保留字符串值,可以使用 gnuplot 提供的一些字符串函数构造某种查找-table(另请参阅 Different coloured bars in gnuplot bar chart?对于类似的用例):
IrisColors = 'Iris-setosa Iris-versicolor Iris-virginica'
index(s) = words(substr(IrisColors, 0, strstrt(IrisColors, s)-1)) + 1
set style fill solid noborder
set linetype 1 lc rgb 'red'
set linetype 2 lc rgb 'green'
set linetype 3 lc rgb 'blue'
plot 'iris.data' using 1:2:(index(strcol(5))) linecolor variable
请注意,字符串比较区分大小写,并且不能将带有空格的字符串用作单个键。
我有这个虹膜数据...
5.1 3.5 1.4 0.2 Iris-setosa
4.9 3 1.4 0.2 Iris-setosa
7 3.2 4.7 1.4 Iris-versicolor
6.4 3.2 4.5 1.5 Iris-versicolor
7.1 3 5.9 2.1 Iris-virginica
6.3 2.9 5.6 1.8 Iris-virginica
.
.
.
我使用 gnuplot 得到了图形(绘图 'c:\iris.data')
但我想要第 5 列颜色组的点(鸢尾花、鸢尾花、鸢尾花)
例如。 . .
iris-setosa = 红色,iris-versicolor= 绿色,iris-virginica = 蓝色
如何获得彩色图表?
请回答。 . . .
用数字索引替换您的颜色,例如:
5.1 3.5 1.4 0.2 0
4.9 3 1.4 0.2 0
7 3.2 4.7 1.4 1
6.4 3.2 4.5 1.5 1
7.1 3 5.9 2.1 2
6.3 2.9 5.6 1.8 2
一个简单的搜索和替换脚本应该能够为您做到这一点。
然后你可以使用 Gnuplot 的 linecolor palette
,例如如下:
plot "iris.data" u 1:2:5 w p lc palette
要像这样调整使用的颜色:
set palette defined (0 "red", 1 "green", 2 "blue")
请注意,虽然我在这里选择使用确切的索引,但调色板定义是相对的,我还不如使用:
set palette defined (-11 "red", -2 "green", 7 "blue")
如果您想在数据文件中保留字符串值,可以使用 gnuplot 提供的一些字符串函数构造某种查找-table(另请参阅 Different coloured bars in gnuplot bar chart?对于类似的用例):
IrisColors = 'Iris-setosa Iris-versicolor Iris-virginica'
index(s) = words(substr(IrisColors, 0, strstrt(IrisColors, s)-1)) + 1
set style fill solid noborder
set linetype 1 lc rgb 'red'
set linetype 2 lc rgb 'green'
set linetype 3 lc rgb 'blue'
plot 'iris.data' using 1:2:(index(strcol(5))) linecolor variable
请注意,字符串比较区分大小写,并且不能将带有空格的字符串用作单个键。