मेरे पास trajectories के साथ एक txt फ़ाइल है। मैं gnuplot द्वारा कॉलम 3 को कैसे प्लॉट कर सकता हूं और ट्रैजेक्टोरियों को अलग करने के लिए लंबवत रेखा हो सकता हूं।
#indexes: 0
1 -0.375E+04 0.382E+01
2 -0.375E+04 0.332E+01
3 -0.376E+04 0.353E+01
#indexes: 1
1 -0.735E+04 0.093E+01
2 -0.735E+04 0.096E+01
3 -0.735E+04 0.082E+01
4 -0.735E+04 0.094E+01
#indexes: 2
1 -0.835E+04 0.401E+01
2 -0.035E+04 0.438E+01
3 -0.365E+04 0.438E+01
मेरे पास कई इंडेक्स हैं।
तस्वीर:
उत्तर:
उत्तर № 1 के लिए 1यहां एक उदाहरण शेल स्क्रिप्ट है जो आपके उदाहरण डेटा के साथ काम करती है। यह मानता है कि डेटा एक फाइल में है data
, एक दूसरी टीएमपी फ़ाइल बनाता है /tmp/data2
, और एक छवि /tmp/data.png
.
#!/bin/bash
max=$(awk <data "
!/^#indexes/{ if($3+0>max)max = $3 }
END {print max}")
awk <data >/tmp/data2 -vmax="$max" "
/^#indexes/ {printf "%s %sn",i,max; next}
{ i++; }"
gnuplot <<!
set terminal png
set output "/tmp/data.png"
plot "data" using 3 with lines linetype rgb "red",
"/tmp/data2" using 1:2 with impulse linetype rgb "blue"
!
# eg: display /tmp/data.png
पहला awk तीसरे क्षेत्र का अधिकतम मूल्य पाता है। दूसरा अजीब प्रत्येक "# इंडेक्स" लाइन के लिए एक डेटा लाइन "i max" बनाता है, जहां i
मायने रखता है डेटा लाइनों की संख्या, यानी नीली लंबवत के लिए एक्स अक्ष मान लाइनों।