Suppression des étiquettes de graduation de l'axe y pour certains sous-graphiques dans Matplotlib, Python
J'ai une figure avec trois sous-graphiques et l'axe des y pour tous les sous-graphiques utilise les mêmes étiquettes de graduation (elles sont catégoriques). Voici le code:
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()
L'intrigue ressemble à ce qui suit:
Terrain
Je souhaite supprimer les étiquettes de l'axe y pour les deux derniers tracés, car ils ont essentiellement les mêmes étiquettes que le premier. Avec cela, je n'ai pas à me battre pour l'espace et le graphique aurait l'air plus net.
Réponses
Mon approche serait d'utiliser axes.get_yaxis().set_visible(False). Donc ce qui suit:
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()
Sinon, essayez de l'inclure dans votre script et utilisez définitivement axes.get_yaxis().set_visible(False)et ciblez les deux derniers graphiques. Dans mon cas, je les ai définis comme ax2et ax3et «ciblés» par leur nom.