2016-09-13 6 views
5

मेरे पास दो-दो-दो प्लॉट हैं जो मैं गतिशील रूप से बना रहा हूं। पहली पंक्ति में मैं दूसरी पंक्ति सीडीएफ में घनत्व कार्यों को साजिश करना चाहता हूं। मैं साझा करने के लिए y प्रत्येक पंक्ति व्यक्तिगत रूप से साझा करती है?

है यही कारण है, दो वस्तुओं खड़ी गठबंधन ही x- अक्ष है

  • स्तंभों में से प्रत्येक को साझा करना चाहते एक्स
  • पंक्तियों में से प्रत्येक के, और दो भूखंडों क्षैतिज गठबंधन एक ही वाई अक्ष है।

    हालांकि, sharex और sharey उन्हें सभी सबप्लॉट्स के लिए समान होने के लिए मजबूर करता है। मैं इस प्रकार के अक्ष साझा करने को कैसे ठीक कर सकता हूं? मैं समझता हूँ कि हो सकता है कि मैं मैन्युअल रूप से प्रत्येक एक हिस्से साथी अक्ष दे सकता है, लेकिन है कि जेनेरिक संरचना इस प्रकार है कि के साथ काम नहीं करेंगे:

    fig, axes = plt.subplots(nrows=2, ncols=2, sharex=True) 
    for i, lam in enumerate(lams): 
        axesNow = [axs[i] for axs in axes] # pick the ith column from axes 
        for i, Param.p in enumerate(pp): 
         axesNow[0].plot(somethingWithPDF) 
         axesNow[1].plot(somethingWithCDF) 
    
    for ax in axes.flatten(): ax.legend() 
    

    enter image description here

उत्तर

-1

क्या कुछ इस तरह है, जहां सभी कुल्हाड़ियों निर्माण कर रहे हैं के बारे में अलग-अलग:

x1 = np.arange(5) 
y1 = np.arange(3, 8) 
ax1 = plt.subplot(223) 
ax1.plot(x1, y1) 
ax1.set_title("ax1") 

x2 = np.arange(5, 10) 
y2 = np.arange(3, 8) 
ax2 = plt.subplot(224, sharey=ax1) 
ax2.plot(x2, y2) 
ax2.set_title("ax2") 
#plt.setp(ax2.get_yticklabels(), visible=False) # Use this to hide axes labels 


x3 = x1 
y3 = np.arange(13, 8, -1) 
ax3 = plt.subplot(221, sharex=ax1) 
ax3.plot(x3, y3) 
ax3.set_title("ax3") 
#plt.setp(ax3.get_xticklabels(), visible=False) 


x4 = x2 
y4 = y3 
ax4 = plt.subplot(222, sharex=ax2, sharey=ax3) 
ax4.plot(x4, y4) 
ax4.set_title("ax4") 
#plt.setp(ax4.get_xticklabels(), visible=False) 
#plt.setp(ax4.get_yticklabels(), visible=False) 

plt.show() 

enter image description here

+0

कि वास्तव में काम करता है, मैं एक सामान्य (गैर व्यक्तिगत) दृष्टिकोण – FooBar

+0

अधिक कोड के लिए देख रहा था, और बहुत कठिन farenorth के जवाब से संशोधित करने के लिए। – naught101

10

pyplot.subplots documentationका वर्णन करता है sharex और sharey kwargs के लिएऔर 'row' विकल्प। विशेष रूप से, मुझे लगता है कि आप चाहते हैं:

fig, axes = plt.subplots(nrows=2, ncols=2, sharex='col', sharey='row') 
संबंधित मुद्दे