Xóa nhãn đánh dấu trục y cho các ô con nhất định trong Matplotlib, Python
Aug 28 2020
Tôi có một hình với ba ô con và trục y cho tất cả các ô con sử dụng cùng một nhãn đánh dấu (chúng phân loại). Đây là mã:
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()
Cốt truyện trông như sau:
Âm mưu
Tôi muốn xóa nhãn trục y cho hai ô cuối cùng vì chúng về cơ bản có cùng nhãn với ô đầu tiên. Với điều đó, tôi không phải tranh giành không gian và biểu đồ sẽ trông gọn gàng hơn.
Trả lời
3 Thomas Aug 27 2020 at 22:49
Cách tiếp cận của tôi sẽ là sử dụng axes.get_yaxis().set_visible(False). Vì vậy, như sau:
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()
Nếu không, hãy cố gắng đưa nó vào kịch bản của bạn và chắc chắn sử dụng axes.get_yaxis().set_visible(False)và nhắm mục tiêu hai âm mưu cuối cùng. Trong trường hợp của tôi, tôi đã xác định chúng là ax2và ax3và "được nhắm mục tiêu" theo tên.