Ответы:
Это предлагаемое решение 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