2012-06-19 30 views
0

我有一個使用gnuplot繪製的點(x,y)文件。如果我有另一個文件顯示哪一點與某個邊相連(例如(3.8,6)鏈接到(4,7)),是否可以在點之間可視化/繪製這些邊?使用gnuplot與邊緣鏈接的繪圖點

回答

3

取決於您的數據組織方式,您可能需要查看繪圖with vectors。 例如,如果你的數據文件是這樣的:

#x1 y1 x2 y2 
1 1 3 3 

您可以繪製此使用:

set style arrow 1 nohead 
plot "my_arrows.dat" using 1:2:($3-$1):($4-$2) with vectors arrowstyle 1 

編輯

假設在你的數據文件的所有點重複,你可以做如下:

set style arrow 1 nohead 
plot "my_arrows.dat" using 1:2:($3-$1):($4-$2) with vectors arrowstyle 1,\ 
    "my_arrows.dat" using 1:2 w points 

如果他們不能重複的,你可以這樣做:

set style arrow 1 nohead 
plot "my_arrows.dat" using 1:2:($3-$1):($4-$2) with vectors arrowstyle 1,\ 
    "my_arrows.dat" using 1:2 w points ls 1 lc rgb "red" pt 1,\ 
    "my_arrows.dat" using 3:4 w points ls 1 lc rgb "red" pt 1 

需要注意的是,你可以玩的linestyles(linecolorlcpointtypeptlinewidthlw等方面做出點出現在相同的。 )

+0

太棒了,所以我只需要重新排列我的箭頭文件以遵循這種格式(x1 y1 x2 y2)。唯一的問題就是點與箭頭鏈接時不可見。我應該添加到您的命令,以便點可見? – shn

+0

查看我更新的帖子。我希望我能正確理解你的問題。 – mgilson

+0

在my_arrows.dat「2 6 4 9」和「4 7 3 5」中使用4點,我得到以下(我試過你的最後一個命令),這看起來不正確:http://img15.hostingpics.net/pics/639362lllolz .png – shn

2

您可能無法在不使用單獨的實用程序來生成你的plotscript讀取線位置,但該命令從點至點劃一條線是

set arrow [X] from first x1,y1 to first x2,y2 nohead 

,其中X是一個可選的標籤(x1,y1)和(x2,y2)是圖形座標系中的點。

+0

首先,是否有可能有一個無向箭頭?其次,我有一個文件說明每個點與哪個點相關聯。我是否應該生成一個相應的文件a,其中包含每個關聯的命令「set arrow ..」(這就是你所說的「plotscript」)? – shn

+0

好的,對於第一個問題,我發現我可以在最後添加「nohead」以獲得無向箭頭。現在要生成應該將每個點鏈接到其他一些腳本的腳本,我應該生成哪種腳本(我將使用python生成它),它只是一系列命令「設置從Xi,Yi到第一個Xj,Yj的箭頭nohead「? – shn

+0

你說得對,我最初忘了添加'nohead'選項。一個plotscript只是一個文件,其中包含您將要在gnuplot中輸入的命令。你可以在命令行輸入'gnuplot plotscript.plt'來使用它(文件擴展名無關緊要),或者你可以在gnuplot中輸入'load plotscript.plt'。你也想要生成包含命令的文件 - 只是一堆'set arrow ...'命令。 – andyras