Відповіді:
Це запропоноване рішення 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