使用gnuplot中的文本列作为打印参数

使用gnuplot中的文本列作为打印参数,gnuplot,Gnuplot,我使用的csv文件包含3列数据,如下所示: Country name, Year, Population value Afghanistan, 2000, 8774440 Afghanistan, 2001, 8774441 Afghanistan, 2002, 8774442 Germany, 2000, 18774440 Germany, 2001, 18774442 Germany, 2002, 18774444 我试图绘制人口增长图,即以年为x轴,以值为y轴 我是gnuplot的新手,

我使用的csv文件包含3列数据,如下所示:

Country name, Year, Population value
Afghanistan, 2000, 8774440
Afghanistan, 2001, 8774441
Afghanistan, 2002, 8774442
Germany, 2000, 18774440
Germany, 2001, 18774442
Germany, 2002, 18774444
我试图绘制人口增长图,即以年为x轴,以值为y轴

我是gnuplot的新手,想知道是否可以使用第一列绘制第二列和第三列 列的值作为参数/参数

我知道可以使用sed-like绘制特定的行

plot "<(sed -n '0,2p' p.csv)" using 2:3 with lines

plot”不需要sed或awk。您可以使用三元运算符作为过滤器(请参见
帮助三元
)。但是,应该有类似的问题(关于按数字过滤),我现在找不到

代码:

### plot data filtered with ternary operator
reset session

set datafile separator comma

$Data <<EOD
Afghanistan, 2000, 8774440
Afghanistan, 2001, 8774441
Afghanistan, 2002, 8774442
Germany, 2000, 18774440
Germany, 2001, 18774442
Germany, 2002, 18774444
EOD

mySelection = "Afghanistan"
myFilter(n) = strcol(n) eq mySelection ? $3 : NaN

set format y "%.0f"
set key top left
set xtics 1

plot $Data u 2:(myFilter(1)) w lp pt 7 title mySelection

### end of code
###用三元运算符过滤的绘图数据
重置会话
设置数据文件分隔符逗号

$Data不需要sed或awk。您可以使用三元运算符作为过滤器(请参见
帮助三元
)。但是,应该有类似的问题(关于按数字过滤),我现在找不到

代码:

### plot data filtered with ternary operator
reset session

set datafile separator comma

$Data <<EOD
Afghanistan, 2000, 8774440
Afghanistan, 2001, 8774441
Afghanistan, 2002, 8774442
Germany, 2000, 18774440
Germany, 2001, 18774442
Germany, 2002, 18774444
EOD

mySelection = "Afghanistan"
myFilter(n) = strcol(n) eq mySelection ? $3 : NaN

set format y "%.0f"
set key top left
set xtics 1

plot $Data u 2:(myFilter(1)) w lp pt 7 title mySelection

### end of code
###用三元运算符过滤的绘图数据
重置会话
设置数据文件分隔符逗号
$Data