मैं एक प्लॉटिंग फ़ंक्शन बनाने की कोशिश कर रहा हूं जो इनपुट प्लॉट की संख्या इनपुट के रूप में लेता है और pylab.subplots
और sharex=True
विकल्प का उपयोग करके उन्हें प्लॉट करता है। यदि आवश्यक भूखंडों की संख्या विषम है, तो मैं अंतिम पैनल को हटाना चाहता हूं और उपरोक्त पैनल पर टिक लेबल को बल देना चाहता हूं। मुझे ऐसा करने का कोई तरीका नहीं मिल रहा है और एक ही समय में sharex=True
विकल्प का उपयोग नहीं कर रहा है। सबप्लॉट्स की संख्या काफी बड़ी हो सकती है (> 20)।subplots की विषम संख्या के साथ matplotlib
यहां नमूना कोड है। इस उदाहरण में मैं i=3
पर xtick लेबल को मजबूर करना चाहता हूं।
import numpy as np
import matplotlib.pylab as plt
def main():
n = 5
nx = 100
x = np.arange(nx)
if n % 2 == 0:
f, axs = plt.subplots(n/2, 2, sharex=True)
else:
f, axs = plt.subplots(n/2+1, 2, sharex=True)
for i in range(n):
y = np.random.rand(nx)
if i % 2 == 0:
axs[i/2, 0].plot(x, y, '-', label='plot '+str(i+1))
axs[i/2, 0].legend()
else:
axs[i/2, 1].plot(x, y, '-', label='plot '+str(i+1))
axs[i/2, 1].legend()
if n % 2 != 0:
f.delaxes(axs[i/2, 1])
f.show()
if __name__ == "__main__":
main()