6

我有一个 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 的第一行检索名字而不是手动输入?

此外,如果我在表格中添加一列,是否可以调整它,以便它自动添加具有适当标题的另一行?

4

1 回答 1

10

你说你有一个 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

输出:

infile.csv 的 1:2 和 1:3 列的绘图

请注意,对后续问题的回答也可能是相关的。

于 2012-11-14T01:20:40.100 回答