2011-01-26 20 views
14

में डेटा फ़ाइल में कॉलम से x-axis tics बनाना मेरे पास निम्न प्रारूप में एक डेटा फ़ाइल है।Gnuplot

/foo.jsp 1234 
/bar.jsp 6653 
/foobar.jsp 9986 
/bar.jsp 2221 
/foo.jsp 5643 

मैं कहाँ एक्स अक्ष पर tics दूसरे स्तंभ से y अक्ष पर पहले कॉलम और मूल्यों से लिया जाता है gnuplot में इस फ़ाइल को प्लॉट करने के लिए चाहते हैं। उदाहरण के लिए मैं चार्ट को इस तरह कुछ दिखाना चाहता हूं:

10000 x   x 
5000  x   x   x 
0  /foo.jsp /bar.jsp /foobar.jsp 

जहां एक्स चार्ट में बिंदु हैं।

सबसे अच्छा मैं ऐसा करने में कामयाब रहे है:

plot "datafile.dat" using 2:xticlabel(1) with points 

हालांकि, उस आदेश पहले कॉलम में प्रत्येक मान के लिए tics को दोहराता है (अर्थात मैं एक्स अक्ष पर दो /foo.jsp tics मिल)। मैं पहले कॉलम में प्रत्येक अद्वितीय स्ट्रिंग के लिए एक अद्वितीय टिक होना चाहता हूं।

उत्तर

19

मुझे लगता है कि आपको केवल x संख्या के साथ एक कॉलम शामिल करना चाहिए, foo.jsp = 1, bar.jsp = 2, आदि कहें और मान लीजिए कि आप इसे पहले कॉलम में डाल दें।

1 foo.jsp 1234
2 bar.jsp 6653
3 foobar.jsp 9986
2 bar.jsp 2221
1 foo.jsp 5643

:

तो अपने datafile कैसा लगेगा

तब का उपयोग करें:

plot "datafile.dat" using 1:3:xtic(2) with points 
+0

मुझे लगता है तुम्हारा मतलब है कि मैं वें में एक अद्वितीय स्ट्रिंग के लिए अद्वितीय संख्या रखना चाहिए ई दूसरा कॉलम ऊपर? ऐसा लगता है कि अगर मैं इसे आजमाता हूं तो काम करता है। हालांकि, यह प्रत्येक लेबल को एक संख्या के साथ जोड़ने के लिए प्री-प्रोसेसिंग को पुनः प्राप्त करता है। यह करने योग्य है लेकिन अगर हम इससे बच सकते हैं तो यह सबसे अच्छा होगा। टिप के लिए धन्यवाद। –

+0

यह होगा: प्लॉट "datafile.dat" का उपयोग 2: xtic (1) बिंदुओं के साथ, मैंने इसे चेक किया और यह काम करता है, लेकिन यह आपके प्रारंभिक समाधान के समान दिखता है। – Martin

+0

इसके अलावा, यदि आप वास्तव में xlabel "foo.jsp" से 2 अंक चाहते हैं तो आपको "foo.jsp" – Martin