如果你不想箭頭頭,那麼你可以嘗試的衝動風格(與衝動,而不是用線) (如果你仍然想在最上面的線,那麼你可以繪製兩次)。
如果您確實需要箭頭,那麼以下幾點可能會有所幫助:它使用for循環(或排序)將垂直箭頭添加到繪圖。
Gnuplot script, for loop within or adding to existing plot
具體做法是:
創建一個文件simloop.gp它看起來像下面這樣:
count = count+1
#save the count to count.gp
system 'echo '.count.' > count.gp'
#load the simloop shell
system "./simloop.sh"
#draw the arrow
load 'draw_arrow.gp'
if(count<max) reread
然後創建一個simloop.sh文件,看起來像這樣
#!/bin/bash
#read the count
count=$(awk -F, '{print $1}' count.gp)
#read the file
xcoord=$(awk -v count=$count -F, 'BEGIN{FS=" ";}{ if(NR==count) print $1}' simulation.dat)
ycoord=$(awk -v count=$count -F, 'BEGIN{FS=" "}{ if(NR==count) print $2}' simulation.dat)
dir=$(awk -v count=$count -F, 'BEGIN{FS=" "}{ if(NR==count) print $3}' simulation.dat)
#choose the direction of the arrow
if [ \"$dir\" == \"0\" ]; then
echo '' > draw_arrow.gp
fi
if [ \"$dir\" == \"1\" ]; then
echo 'set arrow from ' $xcoord' ,0 to '$xcoord','$ycoord' head' > draw_arrow.gp
fi
if [ \"$dir\" == \"2\" ]; then
echo 'set arrow from '$xcoord',0 to '$xcoord','$ycoord' backhead' > draw_arrow.gp
fi
然後創建一個看起來如此的simulation.gp文件方法如下:
count = 0;
max = 5;
load "simloop.gp"
set yrange[0:*]
plot "simulation.dat" u 1:2 w l
確保shell文件具有可執行權限(chmod + wrx simloop。SH),加載了gnuplot的,並鍵入
load "./simulation.gp"
這爲我工作與數據文件
1 99 0
2 92.7 1
3 100.3 2
4 44.2 0
5 71.23 1
(爲了測試我擺脫了時間格式化你應該能夠把它放回去,沒有太多比較麻煩)
然後我得到這個圖:
我認爲這或多或少你想要什麼。
來源
2011-01-27 13:54:01
Tom
嗨,我想我得到了你的gnuplot問題工作(至少在linux上)我更新了我的答案。 – Tom 2011-01-27 15:40:37