首页 > 解决方案 > Gnuplot 填充曲线翻转轴

问题描述

有一种样式可以填充 x 的两个函数之间的空间。可以在例如http://gnuplot.sourceforge.net/demo/fillbetween.html找到此类图的示例。 有没有办法制作类似的图,但翻转 x 和 y 轴?这是所需的曲线形状(当然,没有旋转/镜像标签、标题和图例)...

近似期望的外观

它可以用闭合轮廓来完成(就像这里的最后一个例子http://www.gnuplot.info/demo_svg_cvs/fillcrvs.html),但这需要重新洗牌数据文件。还有其他选择吗?

谢谢!

标签: gnuplot

解决方案


你不能直接这样做。来自help filledcurves

第三个变体填充在同一组 x 坐标处采样的两条曲线之间的区域。它需要三列输入数据(x、y1、y2)。

我认为您不能直接指定 (y, x1, x2) 。作为一种解决方法,您可以用某种颜色在 y 轴和较大函数之间的区域,然后用白色填充 y 轴和较小函数之间的区域:

x1(y) = cos(y)+1
x2(y) = cos(y)+2
xmax(y) = (x1(y) > x2(y) ? x1(y) : x2(y))
xmin(y) = (x1(y) < x2(y) ? x1(y) : x2(y))

plot '+' using (xmax($1)):1 with filledcurve y1, \
     '+' using (xmin($1)):1 with filledcurve y1 fillcolor rgb "white"

在此处输入图像描述

如果两个函数中的一个或两个可能为负数,则可能需要稍微调整一下。


推荐阅读