में पहली पंक्ति को अनदेखा करने का सबसे छोटा तरीका मेरे पास एक अन्य तृतीय पक्ष एप्लिकेशन द्वारा बनाई गई .csv डेटाफ़ाइल है जिसे gnuplot
का उपयोग करके प्लॉट किया जाना चाहिए। की फाइल मान लेते हैं निम्नलिखित प्रारूप है:ग्नुपलॉट: डेटाफाइल
1;2;3;4;5;6 <-- This is the header line that should be ignored (with values 1;2;...;N)
1;1;2;1;1;1
2;3;3;3;5;6
3;4;1;1;1;4
पहले कॉलम x- अक्ष के लिए निम्नलिखित कॉलम प्रत्येक खुद lineplot के रूप में साजिश रची किया जाना चाहिए (हाँ, मुझे पता है, एक साजिश के भीतर भी कई लाइन भूखंडों है हो सकता है बुरा लग रहा है, लेकिन सिर्फ एक विचार पाने के लिए)। यहां एक एमसीवीई:
set terminal png size 1000,500
set datafile separator ";" # CSV file is seperated with ;
plot \
'C://tmp/test.csv' using 1:2 with lines title "A",\
'C://tmp/test.csv' using 1:3 with lines title "B",\
'C://tmp/test.csv' using 1:4 with lines title "C",\
'C://tmp/test.csv' using 1:5 with lines title "D",\
'C://tmp/test.csv' using 1:6 with lines title "E"
समस्या यह है कि यह पहली पंक्ति भी प्लॉट करता है क्योंकि यह डेटा होगा।
मुझे पता है कि #
के साथ इसे #1;2;3;4;5;6
से शुरू करके डेटाफाइल में किसी भी पंक्ति को अनदेखा कर सकते हैं, फिर भी मैं फ़ाइल को संपादित नहीं करना चाहता, क्योंकि यह अन्य टूल्स द्वारा भी उपयोग किया जाता है। के रूप में समझाया in this link
एक और तरीका है, plot <filename> every ::1
उपयोग करने के लिए पहली पंक्ति है, जो मतलब यह होगा कि मैं ऊपर स्क्रिप्ट में every ::1
5 बार शामिल करने के लिए होता अनदेखी करने के लिए है। यह निम्नलिखित दिखाई देगा:
set terminal png size 1000,500
set datafile separator ";" # CSV file is seperated with ;
plot \
'C://tmp/test.csv' every ::1 using 1:2 with lines title "A",\
'C://tmp/test.csv' every ::1 using 1:3 with lines title "B",\
'C://tmp/test.csv' every ::1 using 1:4 with lines title "C",\
'C://tmp/test.csv' every ::1 using 1:5 with lines title "D",\
'C://tmp/test.csv' every ::1 using 1:6 with lines title "E"
हर साजिश वास्तव में एक ही रास्ता के लिए every ::1
को परिभाषित कर रहा है? क्या कुछ छोटा - बेहतर एक-लाइनर है - पहली (एन) रेखा को अनदेखा करने का तरीका; every ::1
"वैश्विक रूप से" या कुछ (छद्म कोड) set datafile ignorefirstnlines 1
को परिभाषित करने का कोई तरीका?
क्या हर :: 1' वास्तव में इतना बुरा है? यह मेरे लिए सुरुचिपूर्ण लगता है। शीर्षक स्ट्रिंग कहां 'बी" ', '" सी "' आदि कहां से आते हैं? क्या वे कॉलम हेडर हैं? – e0k
"इतना बुरा नहीं", लेकिन अगर यह हर साजिश में बजाय एक कथन में किया जा सकता है तो मुझे यह अधिक सुरुचिपूर्ण लगेगा। अगर मैं 5 अलग-अलग सलाखों के साथ एक बार साजिश की कल्पना करता हूं, और अतिरिक्त त्रुटि बार, तो इसके परिणामस्वरूप 10 साजिश बयान होंगे, और इसलिए 10 'हर :: 1'। और हां, '" ए "', '" बी "' इत्यादि सिर्फ उदाहरण कॉलम हेडर हैं जिन्हें कुंजी/किंवदंती में दिखाया जाना चाहिए। –
क्या आप प्लॉट पुनरावृत्ति के बारे में जानते हैं? 'Gnuplot' प्रॉम्प्ट से 'सहायता साजिश पुनरावृत्ति' टाइप करें। – e0k