Удалите верхнюю и правую оси всех фигур Matplotlib.

У меня есть код Python, аналогичный приведенному ниже примеру, для удаления верхней и правой осей графиков, созданных с помощью Matplotlib. Галочки также удаляются для всех осей графика.

py.close('all')

py.figure(1)
py.plot(x1, y1)
py.grid()

py.figure(2)
py.plot(x2, y2)
py.grid()

py.figure(3)
py.plot(x3, y3)
py.grid()

ax = py.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
py.tick_params(axis='both', bottom='off', top='off', left='off', right='off')

py.show()

К сожалению, желаемый эффект применяется только к последней фигуре графика. Чтобы удалить верхнюю/правую оси и галочки для всех рисунков, я должен поместить следующий код после каждого рисунка:

ax = py.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
py.tick_params(...)

Можно ли настроить оси всех фигур сразу с помощью Matplotlib?


person wigging    schedule 16.11.2015    source источник


Ответы (2)


По крайней мере, текущая версия Matplotlib также поддерживает это через файл конфигурации matplotlibrc:

axes.spines.top    : False
axes.spines.right  : False 

Или, используя rcParams:

import matplotlib as mpl
mpl.rcParams["axes.spines.right"] = False
mpl.rcParams["axes.spines.top"] = False

В зависимости от вашей конфигурации вам также может потребоваться удалить галочки на верхней/правой оси (xtick.top : False, ytick.right : False).

person Bart    schedule 23.10.2017

Что вы можете! Ручной способ — установить rcParams в matplotlib. Например:

import matplotlib as mpl
mpl.rcParams["axes.labelsize"] = 12

Вы должны сделать это перед тем, как заговорить.

См. документы здесь.

При этом я настоятельно рекомендую использовать seaborn для настройки ваших графиков. По крайней мере, это даст вам фору. Вы можете дополнительно настроить их по своему желанию, используя rcParams.

person jorgeh    schedule 16.11.2015
comment
Я посмотрел на rcParams, но нет возможности скрыть верхнюю и правую оси или отключить все галочки. - person wigging; 17.11.2015
comment
Метод Seaborn despine() (см. эту ссылку отключает верхнюю и правую оси. В той же ссылке (см. переопределение элементов раздела стилей Searborn) объясняется, как сделать галочки невидимыми (в основном, установите их размер равным 0) - person jorgeh; 17.11.2015
comment
Есть ли способ сделать это без использования Seaborn? - person wigging; 17.11.2015
comment
Конечно, но я не знаю из головы. Я бы посмотрел исходный код Seaborn, чтобы увидеть, как они это делают. Быстрый поиск показывает, что то, что вы ищете, находится в модуле utils (ищите функцию despine()) - person jorgeh; 18.11.2015