Ответы:
Это предлагаемое решение Matplotlib 3 с официального сайта ЗДЕСЬ :
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
ax = plt.subplot(111)
ax.plot(x, y)
# Hide the right and top spines
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
# Only show ticks on the left and bottom spines
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
plt.show()

spineобъект, и я бы не догадался об этом ключевом слове.
В качестве альтернативы, это
def simpleaxis(ax):
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.get_xaxis().tick_bottom()
ax.get_yaxis().tick_left()
похоже, достигается тот же эффект на оси без потери поддержки поворотной метки.
(Matplotlib 1.0.1; решение, вдохновленное этим ).
[править] matplotlib сейчас (2013-10) в версии 1.3.0, которая включает это
Эта способность была добавлена только что, и для этого вам понадобится версия Subversion. Вы можете увидеть пример кода здесь .
Я просто обновляюсь, чтобы сказать, что сейчас в сети есть лучший пример . Тем не менее, версия Subversion все еще нужна, с ней еще не было выпуска.
[править] Matplotlib 0.99.0 RC1 только что был выпущен и включает эту возможность.
mpl.subplotsнельзя использовать таким образом?
(Это скорее дополнительный комментарий, помимо исчерпывающих ответов здесь.)
Обратите внимание, что мы можем скрыть каждый из этих трех элементов независимо друг от друга:
Чтобы скрыть границу (также известную как «позвоночник»): ax.set_frame_on(False)илиax.spines['top'].set_visible(False)
Чтобы скрыть галочки: ax.tick_params(top=False)
Чтобы скрыть метки: ax.tick_params(labeltop=False)
Если вам не нужны галочки и тому подобное (например, для построения качественных иллюстраций), вы также можете использовать этот быстрый обходной путь:
Сделайте оси невидимыми (например, с помощью plt.gca().axison = False), а затем нарисуйте их вручную с помощью plt.arrow.
В библиотеке Seaborn это встроено с функцией despine ().
Просто добавь:
import seaborn as sns
Теперь создайте свой график. И в конце добавить:
sns.despine()
Если вы посмотрите на некоторые значения параметров по умолчанию для функции, она удалит верхний и правый стержень и оставит нижний и левый стержень:
sns.despine(top=True, right=True, left=False, bottom=False)
Дополнительную документацию можно найти здесь: https://seaborn.pydata.org/generated/seaborn.despine.html
Если вам нужно удалить его со всех ваших графиков, вы можете удалить шипы в настройках стиля (таблица стилей или rcParams). Например:
import matplotlib as mpl
mpl.rcParams['axes.spines.right'] = False
mpl.rcParams['axes.spines.top'] = False
Если вы хотите удалить все шипы:
mpl.rcParams['axes.spines.left'] = False
mpl.rcParams['axes.spines.right'] = False
mpl.rcParams['axes.spines.top'] = False
mpl.rcParams['axes.spines.bottom'] = False