我无法绘制水平线
...
set arrow 2 from graph 0, y(x) to x, y(x) nohead
...
为清楚起见,假设x = 1 => y = 3
据我所知,应该会生成从(0,3)
到(1, 3)
的一行。但是,第一个点y
的{{1}}坐标最终出现在情节之外的某个位置。但是,如果我使用(根据a post here)
(0,3)
然后它产生我想要的输出。
有人可以使用set arrow 2 from graph 0, first y(x) to x, y(x) nohead
向我解释上面的魔力吗?
答案 0 :(得分:2)
值得一读help coordinates
来了解不同的坐标系。简而言之,first
坐标系是由x和y轴的当前范围定义的:图的左下角有坐标(xmin,ymin),右上角有坐标(xmax, YMAX)。在graph
坐标系中,左下角始终为(0,0),右上角始终为(1,1),与两个轴的范围无关。
这是一个简短的例子:
set xrange [-4:4]
set yrange [-3:3]
set grid
set arrow 1 from first 0,0 to first 1,1 ls 1 lw 3
set arrow 2 from graph 0,0 to graph 1,1 ls 2 lw 3
plot 1/0 ti ""
紫色矢量是箭头1,它在first
坐标系中从(0,0)变为(1,1)。第二个向量是箭头2,它在graph
坐标系中从(0,0)到(1,1)。
将使用坐标系的默认规则是
如果未指定x的坐标系,则使用
first
。如果 未指定y的系统,采用用于x的系统。
以及set arrow
的特殊情况,
坐标系说明符不会从第一个端点描述[转]到第二个端点。
听起来你想要使用first
坐标系,所以你不必做任何事情:
set arrow from 0, y(x) to x, y(x)
使用时
set arrow from graph 0, y(x) to x, y(x)
您使用graph
坐标系作为起点,使用first
坐标系作为终点。
使用时
set arrow from graph 0, first y(x) to x, y(x)
您使用graph
坐标系作为起点的x坐标,并使用first
坐标系作为剩余坐标。如果x轴的范围从零开始,这与使用first
坐标系统的所有内容相同。