【问题标题】:How do I set axis label with column header in gnuplot?如何在 gnuplot 中设置带有列标题的轴标签?
【发布时间】:2013-04-18 17:16:57
【问题描述】:

我的问题很简单。假设我有一个带有列标题的数据文件,如下所示

first second
1 1 
2 1
3 6
4 9

在 gnuplot 中,如何使用列标题作为轴标签来绘制数据文件?例如通过调用

plot datafile using 1:2

我得到标记为first 的x 轴和标记为second 的y 轴?

编辑:我知道我可以通过set key auto title column head 将列标题用作键条目,但这并不是我想要的。

【问题讨论】:

    标签: gnuplot columnheader


    【解决方案1】:

    要详细说明@andyras 的建议,您可以这样做:

    datafile = 'filename.txt'
    firstrow = system('head -1 '.datafile)
    set xlabel word(firstrow, 1)
    set ylabel word(firstrow, 2)
    plot datafile using 1:2
    

    您必须使用明确的using 语句进行绘图,否则gnuplot 将抱怨bad data on line 1。

    【讨论】:

      【解决方案2】:

      我不认为这个功能是内置在 gnuplot 中的;您可能必须使用类似 awk 的实用程序从数据文件中提取这些标签。

      您可以尝试在 gnuplot 的 sourceforge 网站上提交功能请求,并从那里的开发人员那里获得反馈。

      【讨论】:

      • awk + head -1 应该这样做。
      【解决方案3】:

      我认为它是受支持的。您应该能够使用“”:

      使用 "first":"second" 绘制“文件”

      虽然,如果你想在你的使用规范中做数学,你也需要 column("") 函数

      使用“first”绘制“文件”:(column(“second”)-(column(“thrid”))

      (无论如何,仅在数学中使用带引号的标题名称对我不起作用。)

      【讨论】:

      • 使用您的方法,您可以按标题字符串选择列,而不是使用 1 和 2,但这些标题不用作轴标签。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多