我想在 gnuplot 中绘制一个箭头,箭头出现在箭头的中间而不是两个极端。尝试了中间人选项,但似乎不起作用。

这是我用来创建下面图像的脚本,

set style arrow 1 front head filled size screen 0.008,6 lt 1 lw 1
set arrow from  0.4750,-0.3592 to 1.05767,0.4179 as 1

最佳答案

正如安迪拉斯已经指出的那样:没有选择来获得这个。但是,您可以创建一个函数来为您构建两个箭头并计算中间点。函数 middlearrow 将包含两个箭头定义的字符串构建在一起,然后必须使用 eval 对其进行处理:

set style arrow 1 front head filled size screen 0.03,15 lt 1 lw 1
middlearrow(from_x, from_y, to_x, to_y) = \
        sprintf('set arrow from %f,%f to %f,%f as 1 nohead;', 0.5*(from_x + to_x), 0.5*(from_y + to_y), to_x, to_y).\
        sprintf('set arrow from %f,%f to %f,%f as 1', from_x, from_y, 0.5*(from_x + to_x), 0.5*(from_y + to_y))

eval(middlearrow(0.1,0.1,0.9,0.9))

set xrange [0:1]
set yrange [0:1]

plot 0

4.6.4 的结果:

关于gnuplot - 如何在gnuplot中获得一个中间箭头?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23611196/

10-14 07:07