我需要只繪製矢量頭,但使用以下情節向量只有頭上有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