2012-12-09 14 views
9

स्थापित करने के लिए gnuplot में:महीना tics, कैसे

कैसे प्रत्येक माह के 1 करने के लिए xtics स्थापित करने के लिए?

सेट xtics सेकंड की संख्या प्रति माह से भिन्न होता है के रूप में मेरे लिए काम नहीं करेगा।

क्योंकि महीनों साल के बिना प्रदर्शित किए जाते हैं और यह नहीं दिखाया गया है जो करने के लिए साल में एक महीने अंतर्गत आता है मेरे लिए काम नहीं करता।

+0

मुझे अपने लिए एक समाधान देखना अच्छा लगेगा; मेरे अनुभव में डेटा समय होने पर x डेटा स्वरूपण पर gnuplot बहुत कमजोर है। – andyras

उत्तर

17

मुझे ऐसा लगता है कि gnuplot आश्चर्यजनक रूप से अच्छी तरह से समय को संभालती है। मैं निम्नलिखित (या समान) प्रारूप में अपने डेटा मान:

05/17/12 0.8188064359 
05/18/12 0.97297057 
05/21/12 0.9012782504 

मैं वर्ष की तुलना में यादृच्छिक संख्या प्रसार और एक आधे के लिए इस्तेमाल किया यह परीक्षण करने के लिए।

तो सबसे पहले आप gnuplot अपने x निर्देशांक बताने के लिए समय आ गया है की जरूरत है और क्या प्रारूप यह में लिखा है है: अब से, gnuplot निर्दिष्ट प्रारूप में सभी श्रेणियों की उम्मीद है xtics सहित, से

set xdata time 
set timefmt "%m/%d/%y" 

और xrange आदेश। एकमात्र अपवाद xtics में वृद्धि है जो सेकंड में होना चाहिए।

set xrange ["05/01/12":"08/01/13"] 
set xtics "01/01/12",2592000,"08/01/18" 

अब आप तर्क कर सकता है, कि प्रत्येक महीने में सेकंड की संख्या एक पूरे दिन-ब-अलग है (वास्तव में फरवरी में 2 दिन)। हालांकि, gnuplot लेखकों के बारे में भी इस बारे में सोचना प्रतीत होता है और उन्होंने हमारी पसंद के लिए समस्या हल की। दूसरे शब्दों में, उपर्युक्त एक महीने में हर एक बार टिक सुनिश्चित करेगा। यहाँ, मैं केवल xtics

set format x "%d %b %Y" 

के मुद्रण प्रारूप है जो "01 मई 2012", आदि इस के बाद, plot अपने डेटा में परिणाम होगा निर्दिष्ट करने के लिए सुझाव है कि कर सकते हैं। ओह, जब x- अक्ष पर समय का उपयोग कर, gnuplot plot आदेश में using की आवश्यकता है, तो भी एक छोटी सी डेटा फ़ाइल के साथ के रूप में मैं था, मैं

plot 'data.txt' using 1:2 

मैं करने के लिए gnuplot संस्करण 4.6 Patchlevel 0 और उत्पादन में प्रयोग किया जाता इस्तेमाल किया था पोस्टस्क्रिप्ट टर्मिनल। यदि आपके पास अपने संस्करण या टर्मिनल के साथ अलग अनुभव होगा, तो मुझे टिप्पणियों में बताएं।

+0

यह जादू है! धन्यवाद! यह अधिक upvotes imo के हकदार है ... – JohnC

1

set xtics ठीक काम करता है, तो आप एक महीने में सेकंड की औसत संख्या के लिए सेकंड की संख्या सेट हो जाएगा।

मैं इस औसत वर्ष में 365.2425 दिन संभालने से बाहर काम किया, 12 से विभाजित प्रति माह औसत दिन लगता है (लगभग 30.4), प्रति दिन घंटे तो प्रति घंटे सेकंड, यानी से गुणा:

365.2425/12 * 24 * 3600 = 2629746 

set xdata time 
set timefmt "%Y-%m" 
set format x "%b/%y" # Or some other output format you prefer 
set xtics "2016-01", 2629746, "2016-03" 
plot "mydata.dat" using 1:2 with linespoints 
012:

2016-01 10000 
2016-02 12000 
2016-03 10500 

तो फिर तुम जैसे आदेशों आवश्यकता होगी:

अपने डेटा मान लिया जाये कि साल के महीने और मूल्य, अर्थात् के रूप में स्वरूपित किया गया था

आप महीने के गुणकों में xtics स्थापित करने के लिए तो बस में set xtics लाइन, ई एक गुणक जोड़ने चाहते हैं।जी तिमाही अंक प्राप्त करने के लिए:

set xtics "2016-01", 3*2629746, "2016-12" 

मैंने पाया, महीने उनके xtics लापता की जाएगी कि चार्ट में कुछ बिंदु पर 30 या 31 होने के लिए अगर मैं एक महीने में दिनों की संख्या मान लिया तो कुछ।

संबंधित मुद्दे