2011-07-21 9 views
10

रहा एक रेडियल चाहते हैं (ध्रुवीय) साजिश gnuplot का उपयोग कर (यानी परिपत्र समन्वय प्रणाली (आर, थीटा)gnu plot का उपयोग कर रेडियल (ध्रुवीय) साजिश कैसे प्राप्त करें? ।

यहाँ में मैं मूल्यों का इस्तेमाल किया है:

Theta Max-strain 
0  3400 
60 5300 
120 4700 
180 3800 
240 4100 
300 3100 
360 3400 

कैसे तरह के एक भूखंड प्राप्त करने के ? का उपयोग कर gnu-भूखंड

+3

आप अपनी साजिश में 360 डिग्री से छुटकारा पाने के लिए चाहते हैं क्योंकि यह 0 डिग्री ... – Woltan

उत्तर

25

मैं अपने प्रश्न की साजिश को पुन: करने की कोशिश की और यह है कि क्या मैं के साथ आया है:

unset border 
set polar 
set angles degrees #set gnuplot on degrees instead of radians 

set style line 10 lt 1 lc 0 lw 0.3 #redefine a new line style for the grid 

set grid polar 60 #set the grid to be displayed every 60 degrees 
set grid ls 10 

set xrange [-6000:6000] #make gnuplot to go until 6000 
set yrange [-6000:6000] 

set xtics axis #disply the xtics on the axis instead of on the border 
set ytics axis 

set xtics scale 0 #"remove" the tics so that only the y tics are displayed 
set xtics ("" 1000, "" 2000, "" 3000, "" 4000, "" 5000, "" 6000) #set the xtics only go from 0 to 6000 with increment of1000 but do not display anything. This has to be done otherwise the grid will not be displayed correctly. 
set ytics 0, 1000, 6000 #make the ytics go from the center (0) to 6000 with incrment of 1000 

set size square 

set key lmargin 

set_label(x, text) = sprintf("set label '%s' at (6500*cos(%f)), (6500*sin(%f))  center", text, x, x) #this places a label on the outside 

#here all labels are created 
eval set_label(0, "0") 
eval set_label(60, "60") 
eval set_label(120, "120") 
eval set_label(180, "180") 
eval set_label(240, "240") 
eval set_label(300, "300") 


set style line 11 lt 1 lw 2 pt 2 ps 2 #set the line style for the plot 

#and finally the plot 
plot "-" u 1:2 t "Max strain" w lp ls 11 
0 3400 
60 5300 
120 4700 
180 3800 
240 4100 
300 3100 
360 3400 
e 

Plot of the script above

आप देख सकते हैं , बड़ा अंतर यह है कि कोण 0 शीर्ष पर नहीं है बल्कि दाईं ओर है (जो गणितीय रूप से सही है)। प्लॉट और set_label फ़ंक्शन में उपयोग किए गए मंदी को संशोधित करके आप इसे बदल सकते हैं।

जैसा कि आप स्क्रिप्ट में देख सकते हैं कि सब कुछ वास्तव में कुरकुरा और चमकीला नहीं है। अगर किसी को सुधार मिलते हैं तो कृपया मुझे बताएं!

"सलाह" का एक आखिरी बिट: कुछ टूल से gnuplot के साथ एक साजिश को पुन: पेश करने का प्रयास करना हमेशा उचित नहीं होता है। अक्सर gnuplot की ताकत आसानी से पुन: उत्पन्न करने के सबसे सरल तरीके से डेटा प्लॉट करना है। हो सकता है कि आप उपरोक्त उस स्क्रिप्ट से कुछ लाइनों को लात मार सकें और फिर भी इससे खुश रहें।

+0

आपको बहुत बहुत धन्यवाद। यह बहुत उपयोगी था। मैंने जैसा कि आपने उपरोक्त उल्लेख किया है, ठीक उसी तरह set_label का उपयोग करने का प्रयास किया, लेकिन एक त्रुटि मिली। बाहर लेबल के साथ यह ठीक काम कर रहा है। इसके अलावा यदि ऋणात्मक मूल्य हैं-3400, -5300 इत्यादि ... फिर वाई अक्ष में 6000 से 0 के बजाय उपरोक्त साजिश में, इसे 0 से -6000 अंदर जाना चाहिए। एमएस एक्सेल में प्राप्त साजिश के समान। ऐसी साजिश कैसे प्राप्त करें? – Dolly

+0

@Dolly 'set_label' मैक्रो मेरी मशीन पर काम कर रहा है। त्रुटि संदेश क्या है? नकारात्मक मानों के लिए: एक ध्रुवीय साजिश में आपके पास ऋणात्मक मूल्य नहीं हो सकते हैं, क्योंकि मूल्य त्रिज्या कम या कम होता है और त्रिज्या नकारात्मक नहीं हो सकता है। यदि आपके पास ऋणात्मक मूल्य हैं, तो शायद आपको ध्रुवीय साजिश का उपयोग नहीं करना चाहिए या शायद इसे 'एक्सपी' और 'लॉग' के साथ मैप करना चाहिए ?! – Woltan

+1

जब मैं set_label प्लॉट का उपयोग नहीं कर रहा हूं। जब मैं set_label का उपयोग नहीं करता तो साजिश बन जाती है। क्या विकल्प पुराने gnu-plot संस्करण में उपलब्ध नहीं है? मैं नया संस्करण कहां डाउनलोड कर सकता हूं? – Dolly

5

यहाँ एक पुस्तिका http://t16web.lanl.gov/Kawano/gnuplot/polar-e.html

set polar 
set angles degrees 

और प्राप्त करने के लिए हलकों है:

set grid polar 

यहाँ एक डेमो है: http://gnuplot.sourceforge.net/demo/polar.html

+2

धन्यवाद के साथ अनावश्यक है। मैंने सेट ग्रिड ध्रुवीय का उपयोग करने की कोशिश की है। लेकिन मैं इसमें कोण नहीं दिखा सका और मुझे एक्स और वाई निर्दिष्ट करना पड़ा और प्राप्त प्लॉट जो मैं चाहता था उससे मेल नहीं खाता था। मैंने अब अपना प्रश्न फिर से तैयार कर लिया है। उम्मीद है कि मैं इस बार स्पष्ट हूं। – Dolly

+0

'साजिश डेटा ... लाइनों के साथ' करने का प्रयास करें। – osgx

+0

'सेट ग्रिड ध्रुवीय 30' प्रत्येक 30 डिग्री लाइन के साथ ग्रिड जोड़ देगा। – osgx

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