从csv中读取gnuplot图例

时间:2012-11-14 00:49:28

标签: gnuplot

我有一个data.csv文件,其结构如下:

n    John Smith stats     Sam Williams stats
1                23.4                   44.1
2                32.1                   33.5
3                42.0                   42.1

目前我正在使用gnuplot中的以下命令进行绘图:

plot 'data.csv' using 1:2 title 'John' with lines, '' using 1:3 title 'Sam' with lines

问题是如何从.csv的第一行检索名字而不是手动输入?

另外,如果我在表格中添加一列,是否可以调整它,所以它会自动添加另一行和相应的标题?

1 个答案:

答案 0 :(得分:9)

你说你有一个csv文件,所以我假设你的数据文件是这样的(并保存在 infile.csv 中):

n,John Smith stats,Sam Williams stats
1,23.4,44.1
2,32.1,33.5
3,42.0,42.1

如果您的Gnuplot版本足够新,可以使用columnhead作为title参数:

echo "
  set datafile separator ','
  plot 'infile.csv' using 1:2 with lines title columnhead
" | gnuplot --persist

或使用key选项:

echo "
  set datafile separator ','
  set key autotitle columnhead
  plot 'infile.csv' using 1:2 with lines, '' using 1:3 with lines
" | gnuplot --persist

编辑 - 缩短标题

echo "
  set datafile separator ','
  set key autotitle columnhead
  plot '< sed -r \"1 s/,([^ ]+)[^,]+/,\1/g\" infile.csv' using 1:2 with lines, '' using 1:3 with lines
" | gnuplot --persist

输出:

Plot of column 1:2 and 1:3 of infile.csv

注意后续问题的this answer也可能相关。