我需要只绘制矢量头,但使用以下情节向量只有头上有gnuplot的
plot 'plot.txt' u 1:2:($3*factor):($4*factor) w vector lc rgb 'black'
我得到的所有向量。我只想要头。
所以我需要删除一部分矢量只保留头部。我该如何绘制这个图?
谢谢。
我需要只绘制矢量头,但使用以下情节向量只有头上有gnuplot的
plot 'plot.txt' u 1:2:($3*factor):($4*factor) w vector lc rgb 'black'
我得到的所有向量。我只想要头。
所以我需要删除一部分矢量只保留头部。我该如何绘制这个图?
谢谢。
通过@Christoph联答案确实包含关键因素:
你需要的是
fixed
允许绘制只有头部
但是正确的命令,一个应该是稍微也许这里更具体一些。关键字fixed
本身不会产生“仅头部箭头”。它的主要目的是保证箭头的大小与向量的长度无关。因此,为了只产生一个箭头,只能将箭头的起始点向终点方向移动,直到它被“隐藏”在头部内部。这就是为什么这个answer中最右边的内部箭头似乎只是由它的头部形成 - 身体(线)只是被头部“覆盖”。
reset
set terminal pngcairo
set output 'fig.png'
$db <<EOF
0.0 0.0 1 1
3.0 0.0 -1 1
3.0 3.0 -1 -1
0.0 3.0 1 -1
EOF
set xr [0:3]
set yr [0:3]
set size square
set xtics 0,1,3 in
set ytics 0,1,3 in
set mxtics 2
set mytics 2
unset key
set style arrow 1 head filled size screen 0.05,45 fixed lc rgb 'royalblue'
set style arrow 2 head filled size screen 0.05,45 fixed lc rgb 'dark-spring-green'
factor=0.5
sigma=0.99
plot \
$db using 1:2:(factor*$3):(factor*$4) with vectors as 2,\
$db using ($1+sigma*$3):($2+sigma*$4):((1-sigma)*$3):((1-sigma)*$4) with vectors as 1
的plot
语句的第一部分,产生具有系数0.5缩放箭头(绿色):
因此,为了在实践中做到这一点,还不如继续。由于它们的长度仍然很重要,它们与头部以及身体一起出现。在第二部分中,存在移位因子0<=sigma<=1
- 然后($1+sigma*$3):($2+sigma*$4):((1-sigma)*$3):((1-sigma)*$4)
声明请求具有与之前相同的端点的箭头(例如,第一列和第三列的总和独立于西格玛),但是沿着方向箭头(sigma=0
恢复原始箭头,sigma=1
将产生零长度箭头)。因此,如果sigma
足够接近1
,只有箭头头是可见的:
非常感谢你! – user34615
https://stackoverflow.com/a/41112482/2604213 – Christoph
@Christoph谢谢你,我看到了它,但它不解决我的问题。我只需要绘制所有向量的头部,而不是只绘制一个向量。你能在这里写下我需要输入到gnuplot的代码吗?谢谢 – user34615