Gnuplot - 绘制从x轴到绘图的垂直线,以及从绘图到y轴的垂直线

时间:2013-05-24 21:11:02

标签: gnuplot

我有一个通过gnuplot绘制的高斯曲线,我希望有一条从x轴上升的线,在它到达曲线的地方停下来,并且垂直于左边到达y轴,理想地显示两个轴上的值,并显示与x轴相交的符号。

在gnuplot中添加这个的正确方法是什么?我尝试使用箭头玩箭头,但我是gnuplot的新手,似乎无法找到实现我需要的方法。

2 个答案:

答案 0 :(得分:18)

我设法找到了一个满足我需求的简单解决方案。通过将arrow的{​​{1}}坐标指定为图表本身的函数,nohead实际上可以与y一起使用。

所以我们假设我们有一个函数f(x),我们想绘制一条从x = 3到f(3)的线和相应的水平线y = f(3),我们所要做的就是添加2箭头:

to

由于我还想在线与轴相交的地方添加抽搐,如果它们丢失了,那么就可以这样做:

set arrow from 3,0 to 3,f(3) nohead
set arrow from 0,f(3) to 3,f(3) nohead

由于set xtics add (3 3) set ytics (f(3) f(3)) 轴上可能存在小数位,因此可能还需要执行类似的操作(在这种情况下,它有3个小数位):

y

我没有找到办法在x轴上的抽搐下面做一个标签,但上面的内容足以满足我的需求。希望对寻找相同解决方案的其他人有所帮助。

答案 1 :(得分:1)

我过去通过以下方式解决了这个问题:

知道曲线上您想要线条的点对(x,y),执行: - 计算一组值(x,{0..y}),并绘制它。这将是垂直线 - - 计算一组值({0..x},y),并绘制它。这将是水平线

或者,您可以创建虚拟数组a(x,{whole y range})和({whole x range},y),并通过指定(x)将这些数组从原点绘制到点(x,y) ,y)指向范围设置。

可能这些不是最有效的方式,但两者都适合我。我使用Perl脚本在Perl数据语言(PDL)中进行了这些操作,我从中编写了一个gnuplot配置文件并使用“system”调用gnuplot。

希望这有帮助!