2011-08-09 13 views
10

मैं साजिश के दोनों किनारों पर अक्ष, इस साजिश के समान के साथ matplotlib के साथ एक साजिश आकर्षित करने के लिए चाहते हैं (रंग इस सवाल का कोई वास्ता नहीं है):matplotlib में, आप आकृति के दोनों किनारों पर अक्ष कैसे प्रदर्शित करते हैं?

plot

मैं matplotlib के साथ ऐसा कैसे कर सकते हैं?

नोट: उदाहरण ग्राफ में जो दिखाया गया है उसके विपरीत, मैं चाहता हूं कि दो धुरी बिल्कुल समान हों, और केवल एक ग्राफ दिखाना चाहते हैं। दो अक्ष जोड़ना केवल ग्राफ को पढ़ने में आसान है।

उत्तर

8

वहाँ ऑनलाइन प्रलेखन में प्रासंगिक उदाहरण के एक जोड़े हैं:

  • Two Scales (आप के लिए वास्तव में क्या पूछ रहे हैं क्या करने के लिए लगता है)
  • Dual Fahrenheit and Celsius
+1

क्या इस मामले में एक और विशेष कार्य है कि मैं चाहता हूं कि दो अक्ष बिल्कुल समान हों? –

+0

ड्यूल फारेनहाइट और सेल्शियस उदाहरण उन्होंने आपको शायद ऐसा करने का सबसे अच्छा तरीका दिया है। जहां एक कनवर्टिंग फ़ंक्शन की सीमा पारित करने के बजाय आप उन्हें वही रखेंगे। इसे ax2.set_ylim (y1, y2) में बदलें, मुझे लगता है कि काम करना चाहिए। – daveydave400

+1

@ डेविडडेव 400: सुनिश्चित करें! मैं बस यह सुनिश्चित करना चाहता था कि मुझे एक आसान समाधान नहीं मिला :) –

35

आप tick_params() उपयोग कर सकते हैं:

bar(range(10), range(10)) 
tick_params(labeltop=True, labelright=True) 

यह उत्पन्न करता है I दाना:

Bar plot with both x and y axis labeled the same

0

मैं यह कर दिया है कि पहले का उपयोग कर निम्न:

# Create figure and initial axis  
fig, ax0 = plt.subplots() 
# Create a duplicate of the original xaxis, giving you an additional axis object 
ax1 = ax.twinx() 
# Set the limits of the new axis from the original axis limits 
ax1.set_ylim(ax0.get_ylim()) 

यही मूल y- अक्ष नकल होगा।

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