GNUPlot选择直方图中的行

时间:2012-11-22 10:32:41

标签: row gnuplot histogram

我有一个类似下面的数据文件。现在,我想使用第9列第10列作为错误栏制作直方图。这非常好。 Bubt只有一个选项来绘制特定的行吗?

我在另一个使用三元运算符的线程中尝试了该解决方案:

plot 'Härte StS-123 bis 151.txt' using ( ( $0 == 4 || $0 == 6 ) ? $9 : 1/0 ):($9+$10):($9-$10):xticlabels(2)

这确实绘制了第4行和第6行,但在数据集之间留下了一个空白区域。

还有其他方法可以达到这个目的吗?

数据文件:


StS-123a“SBR / THF”50.10 49.60 49.20 50.70 50.00 49.50 49.85 0.49 0.00974176

StS-123b“SBR / THF”51.00 50.40 50.40 52.00 52.80 50.60 51.20 0.90 0.017614257

StS-124a“SBR + 2phrGraphit”49.60 49.40 49.30 48.90 49.40 49.10 49.28 0.23 0.004599753

1 个答案:

答案 0 :(得分:1)

您可能需要的是plot命令的index选项:

plot 'datafile' index 4 u 9:($9-$10):($9+$10):xticlabels(2), \
     '' index 6 u 9:($9-$10):($9+$10):xticlabels(2)

这应该只绘制第4和第6个数据集(行)中的数据,尽管有两种不同的样式可以在绘图命令中调整。

您想要连接两个数据集中的值吗?这可能比较棘手。

如果您只想绘制具有数据的第4行和第6行的数据,可以在gnuplot中使用外部命令,如:

plot "<sed '/^$/d' data.dat | sed -n '4p; 6p'" u 9:($9-$10):($9+$10):xticlabels(2)

(在这种情况下,这可能不是使用sed最紧凑的方法,但它会删除空白行,然后返回第4行和第6行。)