Чтобы скрыть правый и верхний спины подпункта, вам нужно установить цвет соответствующих спайнов на 'none'
, а также установить позицию галочки на 'left'
для xtick и 'bottom'
для ytick (для того, чтобы скрыть отметки, а также позвоночники).
К сожалению, ни один из них в настоящее время не доступен через matplotlibrc
. Параметры, указанные в matplotlibrc
, проверяются, а затем сохраняются в файле с именем rcParams
. Затем каждый модуль должен проверить наличие ключа в этом файле, значение которого будет использоваться по умолчанию. Если они не проверяют один из своих параметров, этот параметр нельзя изменить с помощью файла rc
.
Из-за природы системы rc
и способа написания хребтов изменение кода для этого не будет простым:
Колючки в настоящее время получают свой цвет через тот же параметр rc
, который используется для определения цветов оси; Вы не можете установить его на 'none'
, не скрывая весь свой чертеж оси. Они также не имеют никакого отношения к тому, являются ли они top
, right
, left
или bottom
& mdash; на самом деле это всего лишь четыре отдельных шипа, хранящиеся в диктовке. Отдельные объекты позвоночника не знают, какую сторону графика они составляют, поэтому вы не можете просто добавить новые параметры rc
и назначить нужный во время инициализации позвоночника.
self.set_edgecolor( rcParams['axes.edgecolor'] )
(. / Matplotlib / lib / matplotlib / spines.py , __init __ (), строка 54 )
Если у вас большой объем существующего кода, так что добавление параметров оси вручную к каждому из них будет слишком обременительным, вы можете поочередно использовать вспомогательную функцию для перебора всех объектов Axis и установки значений для вас.
Вот пример:
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.pyplot import show
# Set up a default, sample figure.
fig = plt.figure()
x = np.linspace(-np.pi,np.pi,100)
y = 2*np.sin(x)
ax = fig.add_subplot(1,2,2)
ax.plot(x,y)
ax.set_title('Normal Spines')
def hide_spines():
"""Hides the top and rightmost axis spines from view for all active
figures and their respective axes."""
# Retrieve a list of all current figures.
figures = [x for x in matplotlib._pylab_helpers.Gcf.get_all_fig_managers()]
for figure in figures:
# Get all Axis instances related to the figure.
for ax in figure.canvas.figure.get_axes():
# Disable spines.
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# Disable ticks.
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
hide_spines()
show()
Просто позвоните hide_spines()
до show()
, и он скроет их на всех цифрах, отображаемых show()
. Я не могу придумать более простой способ изменить большое количество цифр, не тратя время на исправление matplotlib
и добавив в rc
поддержку необходимых параметров.