我有一个类似下面的数据文件。现在,我想使用第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
答案 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行。)