2012-11-22 17 views
12

के साथ ग्नुपलॉट भरे हुए हैं, मैं gnuplot में भरे हुए विकल्प के लिए fillstyle बदलने की कोशिश कर रहा हूं ताकि भरने का रंग 2-आयामी साजिश पर दो घटता के बीच अंतर का प्रतिनिधित्व करता हो। मैं इस बारे में सोच रहा हूं कि 'उपरोक्त/नीचे भरे हुए' विकल्प का विस्तार है, जिससे ऊपर या नीचे प्रतिनिधित्व करने वाले दो रंगों की बजाय रंग सीमा या पैलेट है।पैनेट

यहां प्लॉट का एक उदाहरण है जो मैं उपरोक्त/नीचे भरे वक्र शैली का उपयोग कर डेटाफाइल से बनाना चाहता हूं। दो घटता के बीच वाई-अंतर का प्रतिनिधित्व करने वाला एक रंगीन रंग बहुत उपयोगी होगा।

http://i.stack.imgur.com/RLlpU.png

मैं यानी

plot 'data.txt' using 1:2:3:($3-$2) with filledcurves fs palette 

लेकिन filledcurves आदेश का उपयोग करने के लिए एक चौथे स्तंभ जोड़ कर ऐसा करने के लिए चौथे स्तंभ को स्वीकार करने के प्रकट नहीं होता है की कोशिश की है ... मैं भी विचार किया है आरजीबी परिवर्तनीय कोशिश कर रहा है लेकिन यह या तो काम नहीं करता है।

+2

यह एक सुविधा अनुरोध (http://sourceforge.net/tracker/?group_id=2055&atid=352055) के लिए नौकरी की तरह दिखता है; मुझे नहीं लगता कि gnuplot वह कर सकता है जो आप मूल रूप से चाहते हैं। जब तक इसे लागू नहीं किया जाता है, तो आप अपने साजिश पर एक अलग रेखा के रूप में गर्म और ठंडे राज्य स्पेक्ट्रा के बीच अंतर को साकार करने के बारे में सोच सकते हैं। (यह प्रिंट में पुन: उत्पन्न हो सकता है, और रंग-अंधे के लिए समझने में थोड़ा आसान हो सकता है।) – andyras

+0

मैंने इसके बारे में पर्याप्त नहीं सोचा है, लेकिन आप 'सेट व्यू मानचित्र' के संयोजन के माध्यम से ऐसा कुछ हासिल करने में सक्षम हो सकते हैं ',' splot' और 'pm3d' ... – mgilson

+0

ऐसा लगता है कि आप क्या खोज रहे हैं। http://gnuplot-tricks.blogspot.com/2009/08/filled-curves-in-gnuplot.html –

उत्तर

-2

चाल लाइनों को आकर्षित करना है, फिर filledcurves के साथ उनके बीच भरें। उत्पादन इस तरह दिखता है

set style line 2 lc rgb 'forest-green' 
set style line 3 lc rgb 'plum' 
set style fill pattern 5 lc 'yellow' 
set xrange [0:3000] 
set yrange [0:1] 
plot 'data.txt' u 1:2:3 w filledcurves notitle, \ 
    '' u 1:2 ls 2 with lines notitle, \ 
    '' u 1:3 ls 3 with lines notitle 

: enter image description here

डेटा फ़ाइल इन डमी मान हैं (है कि अपने दूसरे ग्राफ जैसे लगते हैं): यहाँ यह कैसे करना है (examples at gnuplot के आधार पर) है

500  0.90 0.90 
1000 0.90 0.75 
1500 0.92 0.40 
2000 0.95 0.30 
2500 0.94 0.23 
4

मैं भरे हुए घटता के लिए linecolor rgb variable का उपयोग करने की अनुमति देने के लिए gnuplot के लिए पैच के साथ खेल रहा हूं। उसके बाद निम्न gnuplot कोड इस्तेमाल किया जा सकता:

max_color=1 
# for a datafile one could extract the maximum diffference with e.g. 
# stats 'hotcold.dat' using 1:($3-$2) 
# max_color = (abs(STATS_min_y) > abs(STATS_max_y)) ? abs(STATS_min_y) : abs(STATS_max_y) 

red(val) = (val < 0 ? abs(1+val/max_color) : 1) 
green(val) = (1 - abs(val)/max_color) 
blue(val) = red(-val) 
rgb(val) = 65536*int(255*red(val)) + 256*int(255*green(val)) + int(255*blue(val)) 

set yrange[0:1] 
set xrange[400:2500] 
set samples 200 

fhot(x) = 0.1*exp(-((x-400)/200)**2) + 0.8*exp(-((x-2000)/300)**2) 
fcold(x) = 0.25*exp(-((x-700)/100)**6)+ 0.4 - (2e-4*(x-2500))**2 
plot '+' using 1:(fhot($1)):(fcold($1)):(rgb(fhot($1)-fcold($1))) with filledcurves lc rgb var t '',\ 
    '' using 1:(fhot($1)) with lines lw 4 lc rgb rgb(max_color) t 'Hot',\ 
    '' using 1:(fcold($1)) with lines lw 4 lc rgb rgb(-max_color) t 'Cold' 

इस परिणाम देता है कि: enter image description here

मैं पैच जमा नहीं की है, फिर भी, क्योंकि मैं अगर मैं सवाल का सही ढंग से समझ और पता नहीं है क्योंकि मुझे नहीं पता कि मैंने सभी मामलों को कवर किया है या नहीं। तो कुछ ठीक-ट्यूनिंग की आवश्यकता हो सकती है।

+0

तो यह पैच कैसा चल रहा है? आपने इसे कहीं अपलोड किया है? क्या यह प्रयोग योग्य है? – rgcalsaverini

+0

@rgcalsaverini नहीं, मैंने इसे अपलोड नहीं किया।मैंने इसे मजाक के लिए लिखा था, लेकिन चूंकि मुझे ऐसे ग्राफिक्स की आवश्यकता नहीं है, इसलिए मुझे नहीं पता था कि यह सही दृष्टिकोण था, अगर मुझे कुछ याद आ रहा था ... और जब से मुझे इसके बारे में कोई प्रतिक्रिया नहीं मिली, तो मैं पहले प्राथमिक कार्यान्वयन के साथ बंद कर दिया। – Christoph

+1

अच्छा पैच! इस समाधान के सवाल के रूप में, कम से कम, उतना ही उपरोक्त है! ;) –

0

भरे हिस्टोग्राम का उपयोग करने का प्रयास करें।

set style fill solid 1.0 
plot \ 
datafile u 1:2:3 lt palette w boxes,\ 
datafile u 1:2:3 lt palette lw 2 w l 

कॉलम 3 पैलेट सेटिंग्स के अनुसार रंग भरने वाले रंग को परिभाषित करता है, कॉलम 1 और 2 डेटा बिंदु परिभाषित करता है। आप ग्राफ़ के नीचे भागों को साफ़ करने के लिए पृष्ठभूमि रंग हिस्टोग्राम का भी उपयोग कर सकते हैं।

मैं छवि जोड़ना चाहता हूं लेकिन मैं कम प्रतिष्ठा के कारण नहीं कर सकता।