首页 > 解决方案 > Gnuplot:填充由左/右曲线界定的区域?

问题描述

我有一个定义两条曲线的数据集,我想填充它们之间的区域。但是,与标准情况相反,横坐标绘制在垂直轴上,纵坐标绘制在水平轴上;横坐标表示深度,这是地球物理学中常见的绘图格式。换句话说,我想要类似的东西

 plot 's.dat' u 1:2:3 w filledcurves

但是使用交换轴,以便填充区域不是在顶部和底部,而是在曲线的左侧和右侧,如图所示

plot 's.dat' u 2:1,'s.dat' u 3:1

我的数据集是这样的:

0.      -1.776  -0.880
160.    -1.775  -0.882
160.    -1.692  -0.799
320.    -1.692  -0.800
320.    -1.531  -0.634
480.    -1.534  -0.637
480.    -1.286  -0.394

这在 Gnuplot 中可行吗?

托马斯

标签: gnuplot

解决方案


如果 x 的某个值保证位于两条曲线之间,那么您可以绘制成两半。对于您显示的数据, x=-1 将是一个合适的值,并且 plot 命令将是:

plot 's.dat' u 2:1 with filledcurve x=-1 lt 3, \
     's.dat' u 3:1 with filledcurve x=-1 lt 3

如果只能分段满足对恒定中间 x 值的要求,例如

 x=-1 for (0<y<500), x=0 for (500<y<1000)

那么仍然可以通过堆叠分段部分来构建图形。

在此处输入图像描述


推荐阅读