कुछ ऐसी चीजें हैं जो यहां गलत हो सकती हैं - आपके डेटाफाइल को देखे बिना यह बताना असंभव है। एक जोड़े जो मैं अपने सिर के ऊपर से सोच सकते हैं कर रहे हैं:
सभी कॉलम 2 में अपने datapoints हैं सब कम से कम या बराबर 0
(आप त्रुटि संदेश क्योंकि लॉग (0) अपरिभाषित है मिलता है)
आप 50 और 100 के बीच पहले कॉलम इस मामले में किसी भी अंक नहीं हैं, अपने सभी datapoints साजिश सीमा से बाहर काटा गया हो की वजह से set xrange [50:100]
आपका datafile केवल 1 स्तंभ है ... इस मामले में , gnuplot किसी भी वाई-मान नहीं देखता है। (plot '../myFile.final' u 1 ...
करने के लिए परिवर्तन)
संपादित
, ठीक है अब है कि मैं अपने datafile देखते हैं, समस्या निश्चित रूप से है कि आप 0 से 2 (gnuplot से datafile अनुक्रमण शुरू होता है के लिए set xrange [50:60]
लेकिन अपने डेटा की xrange केवल चलाता है है 0)। इसे ठीक करने का सबसे आसान तरीका छद्म-कॉलम 0 का उपयोग करना है। छद्म-कॉलम 0 बस 0 से शुरू होने वाली लाइन संख्या है (यदि आप plot 'blah.txt' using 1
करते हैं तो एक्स अक्ष पर gnuplot प्लॉट्स है। यहां एक उदाहरण है:
scale_x(x,xmin,xmax,datamin,datamax)=xmin+(xmax-xmin)/(datamax-datamin)*x
plot 'test.dat' using (scale_x($0,50,60,0,2)):1 w lines title "scaled xrange"
ध्यान दें कि यदि आप नहीं जानते कि कैसे विनिर्देश का उपयोग कर काम करता है, $ से पहले नंबर होते हैं जो पूरे स्तंभ पर तत्व के लिहाज से संचालन कर रहे हैं उदाहरण के लिए:।
plot 'foo.bar' using 1:($2+$3)
पहले कॉलम प्लस का योग साजिश होगा डेटाफाइल की प्रत्येक पंक्ति में दूसरा और तीसरा तत्व।
यह समाधान मानता है कि आप अपने डेटाफ़ाइल में x का अधिकतम मान जानते हैं (इस मामले में, यह 3-1 = 2 है - [तीन अंक, 0,1,2])। यदि आप डेटापॉइंट्स की संख्या नहीं जानते हैं, तो आप शैल जादू का उपयोग कर सकते हैं, या सीधे gnuplot से। पहला तरीका थोड़ा आसान है, हालांकि पोर्टेबल के रूप में नहीं।
XMAX=`wc -l datafile | awk '{print $1-1}'`
scale_x(x,xmin,xmax,datamin,datamax)=xmin+(xmax-xmin)/(datamax-datamin)*x
plot 'test.dat' using (scale_x($0,50,60,0,XMAX)):1 w lines title "scaled xrange"
दूसरा तरीका है, हम डेटा के माध्यम से दो गुजरता बनाने के लिए और जाने gnuplot अधिकतम लेने की जरूरत है::
set term push #save terminal settings
set term unknown #use unknown terminal -- doesn't actually make a plot, only collects stats
plot 'test.dat' u 0:1 #collect stats
set term pop #restore terminal settings
XMIN=GPVAL_X_MIN #should be 0, set during our first plot command
XMAX=GPVAL_X_MAX #should be number of lines-1, collected during first plot command
scale_x(x,xmin,xmax,datamin,datamax)=xmin+(xmax-xmin)/(datamax-datamin)*x
plot 'test.dat' using (scale_x($0,50,60,XMIN,XMAX)):1 w lines title "scaled xrange"
मैं पूर्णता के लिए लगता है, मुझे लगता है कि कहना चाहिए मैं दोनों दिखाता हूँ gnuplot 4 में करना भी आसान है।
stats 'test.dat' using 0:1 name "test_stats"
#at this point, your xmin/xmax are stored in the variables "test_stats_x_min"/max
XMIN=test_stats_x_min
XMAX=test_stats_x_max
scale_x(x,xmin,xmax,datamin,datamax)=xmin+(xmax-xmin)/(datamax-datamin)*x
plot 'test.dat' using (scale_x($0,50,60,XMIN,XMAX)):1 w lines title "scaled xrange"
gnuplot 4.6 बहुत अच्छा लग रहा है: 6 (मैं अभी स्थापित नहीं है, तो यह अगले भाग सिर्फ डॉक्स की मेरी समझ से आता है)। मैं शायद इसके साथ जल्द ही खेलना शुरू कर दूंगा।
'../ myFile.final' की सामग्री क्या हैं? – mgilson
यह वर्तमान निर्देशिका के बाहर है! मेरी सामग्री का एक तरीका सच है! – Mehdi