我只需绘制矢量头,但使用以下
plot 'plot.txt' u 1:2:($3*factor):($4*factor) w vector lc rgb 'black'
我获得了所有的载体。我只想要头脑。
所以我需要删除仅保留头部的矢量的一部分。我怎么画这个?
谢谢。
答案 0 :(得分:1)
@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),但是沿着箭头方向移动原点(sigma=0
恢复原始箭头,sigma=1
将产生零长度箭头)。因此,如果sigma
足够接近1
,则只能看到箭头: