#matplotlib #plot #axis
#matplotlib #участок #ось
Вопрос:
Что не так в этом коде для скрытия правой и верхней осей, пожалуйста?
import matplotlib.pyplot as plt
fig, ax = plt.subplots(sharex=True, sharey=True, figsize=(10,3))
fig1 = plt.subplot(121)
fig2 = plt.subplot(122)
# Set width of axes
for figures in [fig1, fig2]:
# Removing axis
for side in ['right','top']:
ax.spines[side].set_visible(False)
plt.show()
Это работает для не множественного участка:
for side in ['right','top']:
ax.spines[side].set_visible(False)
ОТРЕДАКТИРОВАННЫЙ КОД:
import matplotlib.pyplot as plt
import seaborn as sns
fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True, sharey=True, figsize=(10,3))
fig1 = plt.subplot(121)
ax1.set_xlabel(r'$k$')
ax1.set_ylabel(r'$omega$', rotation='horizontal')
fig2 = plt.subplot(122)
sns.despine()
plt.show()
Комментарии:
1.
for ax in [fig1, fig2]
.. Хотяfig1
иfig2
вводят в заблуждение имена переменных здесь.2. Или используйте seaborn:
sns.despine()
.3.
fig, axs = plt.subplots(nrows=2, sharex=True, sharey=True, figsize=(10,3))
и избавьтесь от постороннихplt.subplot
вызовов. затемFor ax in axs.ravel()
.4. Избавьтесь от
fig1, ax1 = plt.subplot(121)
. Если вы хотите,fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True, sharey=True, figsize=(10,3))
5. Обратите внимание, но избавьтесь от
for figures in [fig1, fig2]:
иfor side in ['right', top']:
. Все, что вам нужно для удаления шиповsns.despine()
, вызывается без зацикливания.