【问题标题】:Gnuplot - How do I plot one column of data at assigned xtics?Gnuplot - 如何在指定的 xtics 处绘制一列数据?
【发布时间】:2019-10-09 03:06:01
【问题描述】:

我有一列数据(y 轴),其中 4 行中的每一行对应一个温度(x 轴)。我可以将 0-3 的 xtics 用于四个温度,但 xtic 标签表示间隔不均匀的温度。我想在指定的 xtics 处绘制每一行数据,以便间隔反映温度的间隔。这可能吗?

使用以下说明

set xrange [0:3]
set xtics ("253" 0, "294" 1, "310" 2, "350" 3)

我在四个温度下绘制了四行,但 x 值均匀间隔 1 tic。我宁愿让我的数据间隔与温度相同的 xtic 值。

我认为我可以使用

set xtics ("253" 253, "294" 294, "310" 310, "350" 350)

但数据仍绘制在 tic 0-3 处。

我可以使用类似的东西

plot "file.dat" using 1:xtics(253,294,310,350)

这不起作用,但这只是一个想法。 提前感谢您的任何意见和帮助!

【问题讨论】:

  • 你运行的是哪个 gnuplot 版本?

标签: gnuplot


【解决方案1】:

通常的做法是将温度放在单独的列中,并将该列用作 x 坐标。但如果你真的想只在绘图脚本中插入温度值,我建议:

array temperature[4] = [253,294,310,350]
plot "file.dat" using (temperature[$0+1]):1 

请注意,行号从 0-3 运行,但数组索引从 1-4 运行。

如果您的 gnuplot 太旧而无法支持数组,您可能仍然可以使用多字字符串来代替。警告:这个语法真的很丑!

temperature = "253 294 310 350"
plot "file.dat" using (word(temperature,int(column(0))+1)+0.0):1

【讨论】:

  • Array 是我正在使用的计算机上的无效命令。有什么解决办法吗?
  • 也许吧。取决于您的 gnuplot 版本的年龄。请参阅修改后的答案。
  • 太棒了!非常感谢。
【解决方案2】:

另一个(“丑陋”)解决方法:如果您只有 4 行,您可以执行以下操作。也适用于 gnuplot 4.0。

myTic(n) = n==0 ? 253 : n==1 ? 294 : n==2 ? 310 : n==3 ? 350 : NaN

plot 'file.dat' u (myTic($0)):1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多