Matplotlib, Python में कुछ सबप्लॉट्स के लिए y अक्ष टिक लेबल हटाना

Aug 28 2020

मेरे पास तीन सबप्लॉट के साथ एक आंकड़ा है, और सभी सबप्लॉट के लिए y- अक्ष एक ही टिक लेबल का उपयोग करता है (वे श्रेणीबद्ध हैं)। यहाँ कोड है:

on_bus = business_changes[business_changes['Business characteristics']=='Ontario']
qu_bus = business_changes[business_changes['Business characteristics']=='Quebec']
fig, ax = plt.subplots(nrows=1, ncols=3, sharex=True, sharey=True, figsize=(20,10))
ax1 = plt.subplot(1,3,1) 
sns.barplot(x = business_changes.iloc[0,1:], y= business_changes.columns[1:])
plt.title("Changes made by businesses - Canada")
plt.subplot(1,3,2)
sns.barplot(x = on_bus.iloc[0,1:], y = on_bus.columns[1:])
plt.title("Changes by businesses - Ontario")
plt.subplot(1,3,3)
sns.barplot(x = qu_bus.iloc[0,1:], y = qu_bus.columns[1:])
plt.title("Changes by businesses - Quebec")
plt.show()

प्लॉट निम्नलिखित की तरह दिखता है:

भूखंड

मैं पिछले दो भूखंडों के लिए y अक्ष लेबल को निकालना चाहता हूं क्योंकि उनके पास अनिवार्य रूप से पहले एक के समान लेबल हैं। उस के साथ, मुझे अंतरिक्ष के लिए लड़ने की ज़रूरत नहीं है और ग्राफ शून्य दिखाई देगा।

जवाब

3 Thomas Aug 27 2020 at 22:49

मेरा दृष्टिकोण उपयोग करना होगा axes.get_yaxis().set_visible(False)। तो निम्नलिखित है:

f, axes = plt.subplots(1, 3)
ax1 = sns.barplot(x = business_changes.iloc[0,1:], y= business_changes.columns[1:], ax = [0])
plt.title("Changes made by businesses - Canada")
ax2 = sns.barplot(x = on_bus.iloc[0,1:], y = on_bus.columns[1:], ax = axes[1])
ax2.axes.get_yaxis().set_visible(False)
plt.title("Changes by businesses - Ontario")
ax3 = sns.barplot(x = qu_bus.iloc[0,1:], y = qu_bus.columns[1:], ax = axes[2])
plt.title("Changes by businesses - Quebec")
plt.show()

अन्यथा, इसे अपनी स्क्रिप्ट में फिट करने का प्रयास करें और निश्चित रूप axes.get_yaxis().set_visible(False)से दो अंतिम भूखंडों का उपयोग करें और लक्ष्य करें। मेरे मामले में, मैं उन्हें परिभाषित किया गया है ax2और ax3और नाम से "लक्षित"।