आप तीर सिर नहीं करना चाहता था, तो आप आवेगों शैली (आवेगों के साथ नहीं बल्कि लाइनों के साथ की तुलना में) की कोशिश कर सकते (यदि आप अभी भी शीर्ष पर लाइन चाहते हैं तो आप दो बार प्लॉट कर सकते हैं)।
यदि आप वास्तव में तीर के सिर चाहते हैं तो निम्नलिखित मदद कर सकते हैं: यह प्लॉट में लंबवत तीर जोड़ने के लिए लूप (या प्रकार) के लिए उपयोग करता है।
Gnuplot script, for loop within or adding to existing plot
विशेष रूप
:
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
तब कि इतने
#!/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
तरह दिखता है एक simloop.sh फ़ाइल बनाने:
एक फ़ाइल simloop.gp जो ऐसा दिखाई देता बनाने
फिर ऐसा लगता है कि एक simulation.gp फ़ाइल बनाएं इसलिए जैसे mething:
count = 0;
max = 5;
load "simloop.gp"
set yrange[0:*]
plot "simulation.dat" u 1:2 w l
सुनिश्चित करें खोल फ़ाइल निष्पादन योग्य अनुमतियों (chmod + WRX simloop है।श), gnuplot लोड और टाइप
load "./simulation.gp"
यह डेटा फ़ाइल
1 99 0
2 92.7 1
3 100.3 2
4 44.2 0
5 71.23 1
साथ मेरे लिए काम किया (परीक्षण के लिए मैं स्वरूपण तुम भी बिना इसे वापस डाल करने के लिए सक्षम होना चाहिए समय से छुटकारा मिला ज्यादा मुसीबत)
तब मैं इस ग्राफ मिला:।
कौन सा मुझे लगता है कि कमोबेश आप क्या चाहते हैं।
हाय, मुझे लगता है कि मुझे आपका gnuplot प्रश्न काम कर रहा है (कम से कम लिनक्स पर) मैंने अपना जवाब अपडेट किया। – Tom