2012-09-10 7 views
10

क्या मेरे पास दोनों जुड़वां और जुड़वां दोनों हो सकते हैं (यानी twinxy की तरह कुछ)? मैं एक बार साजिश पर एक सीडीएफ रखना चाहता हूं जहां बार साजिश का एक्स अक्ष लॉग-स्केल में है। मैं वाईएस को एक साथ नहीं बना सकता, क्योंकि बार प्लॉट वाई रेंज सीडीएफ के लिए [0,1] की तुलना में बहुत बड़ी है।matplotlib एक साथ जुड़वां और जुड़वां (जैसे twinxy)

कोई विचार?

धन्यवाद,

उत्तर

18

तो मैं समझता हूँ कि आपके सवाल का सही, आप एक ही axes कोई साझा axis साथ पर दो बातें प्लॉट करने के लिए चाहते हैं। शायद यह करने के लिए एक बेहतर तरीका है, लेकिन आप इस तरह के

ax # your first axes 
ax_new = ax.twinx().twiny() 

जो तुम साजिश के सभी पक्षों पर निशान टिकटिक दे देंगे के रूप में twinx(doc) और twiny(doc) ढेर कर सकते हैं। ax नीचे और बाएं के खिलाफ साजिश करेगा, ax_new शीर्ष और दाएं के खिलाफ साजिश करेगा।

+0

सीधा होने लगता है ... मुझे नहीं पता कि मैं इसका परीक्षण करने में विफल क्यों रहा ... धन्यवाद – Amir

+2

ग्रेट समाधान, धन्यवाद! इस विधि का उपयोग करते समय ('ax2 = ax1.twinx()। Twiny()'), मैं y_label को दूसरी धुरी के लिए सेट करने में सक्षम नहीं था, हालांकि मैं x_label सेट कर सकता था। 'Ax2 = ax1.twiny() पर स्विच करके। Twinx() 'मैं y_label जोड़ने में सक्षम था। हालांकि, यह एक और मुद्दा उठाता है क्योंकि मैं एक्स-टिक लेबल ('ax2.tick_params (axis = 'x', जो = 'दोनों', top = 'off', bottom = 'off' को बंद करने में असमर्थ हूं, labelbottom = 'off', labeltop = 'off') ') जैसा कि मैं पहले करने में सक्षम था। यह विधि धुरी की कुछ कार्यक्षमता को तोड़ने लगती है और आसपास काम करने में कुछ समय लग सकता है। – Jason

+2

@ जेसन यह एक अजीब झुर्रियां है कि कैसे ओवरलैपिंग अक्ष पर x/ylabels को संभाला जाता है। आपको मध्यस्थ अक्षों को पकड़ने और उस पर भी काम करने की आवश्यकता हो सकती है। – tacaswell

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