【问题标题】:gnuplot with 2 x axis from data points来自数据点的 2 x 轴的 gnuplot
【发布时间】:2017-09-27 18:32:46
【问题描述】:

我有一个数据文件,y 轴的数据在第三列。我想要 x1 上的第一列和 x2 上的第二列给出的比例。标准方法是:

plot data u 1:2 axes x1y1, data u 1:3 x2y1

但这会产生两个我想避免的情节。当然,可以使用颜色或其他一些肮脏的技巧来完成上述工作。它使整个情节代码非常繁琐。另一个不错的方法是按照建议的here 使用multiplot。但这并不是我真正的目标,因为我想要真正的 x2 轴。

我想到的另一种方法是设置x2range,但这意味着转到源文件并计算出最小值和最大值,或者在 gnuplot 中使用一些统计数据(对于这么简单的事情感觉浪费时间)。

有没有比上面的更简单优雅的方式呢? (我特别担心解决方案写得短,情节可以由几个(> 5)个数据集组成,并且我想避免将每个数据集绘制两次。

【问题讨论】:

  • 你能提供一些数据,以及你想要实现的情节的插图吗?我对您的示例 plot 命令感到困惑——它从不将第二列与 x2 轴相关联。为什么不想要两个地块?如果您只是在 x 和 x2 轴之间寻找静态的、与数据无关的关系,可以使用set link

标签: plot gnuplot


【解决方案1】:

这可以通过这种方式完成,通过告诉 gnuplot 重新扫描文件,将第二列作为 x2 值,但对于第二个图只有无效的 y 值:

set xtics nomirror
set xrange [:] noextend
set x2tics
set x2range [:] noextend
plot '/tmp/f.gdat' u 1:3 w l, '' u 2:(1/0) ax x2y1

例如,您可以在 x 上绘制摄氏温度,在 x2 上绘制华氏温度:

0       32      0
30      86      1
60      140     2
90      194     3

请注意,这只有在第 2 列与第 1 列仿射链接时才有意义。如果您知道仿射关系,使用set link 会好得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    相关资源
    最近更新 更多