让我们假设我们有一个数据:
1383.77224864627 1910.27446956287 13
2022.08962783969 1870.75968662608 13
2244.59435149955 2334.43843428841 13
3223.73010669775 2409.90834407782 15
708.364446053354 3199.82702811616 15
1190.6942303025 2634.33363259192 15
1749.15599203783 2716.76870380272 19
2227.80906774024 3119.99529267007 19
是否可以根据第3列中的值绘制系列图?
本例中的预期结果是在一个图上有3个不同颜色的系列。
我知道我可以创建新系列:
plot 'datafile' using col1:col2, '' using col1:col3
或者在数据文件中使用系列之间的新行,但这不是我想做的。
谢谢! 编辑:我正在使用gnuplot 5.0版
答案 0 :(得分:1)
您需要先过滤数据文件,然后分别绘制各个部分:
#prepare the command responsible for filtering the data file of interest
#select all rows the value in the 3rd column of which is equal to val
filterData(fname, val)=sprintf("<gawk '$3==%d' %s", val, fname)
#show individual dependencies in one plot
plot for [sval in "13 15"] \
filterData('datafile.dat', int(sval)) w lp t sprintf('value %s', sval)
答案 1 :(得分:1)
在my 2012 answer的基础上以及我对你想要的东西的理解,这应该会有所帮助:
set palette defined ( 13 "blue", 15 "red", 19 "green")
unset key
unset colorbox
plot [500:3500][1800:3500] "x" u 1:2:3 with points palette ps 3 pt 5
产生
编辑:
还可以定义连续调色板,并根据其在该比例范围内的值来分配实际颜色。在实践中:
set palette defined ( 0 "blue", 20 "green", 40 "red")
unset key
set colorbox # for demo purpose
plot [500:3500][1800:3500] "x" u 1:2:3 with points palette ps 3 pt 7
带来
给定的数据集。添加新系列时颜色会发生变化。