Установка шипов в matplotlibrc

По странной причине я не могу найти способ указать конфигурацию spines в файле matplotlibrc Python. Любая идея о том, как заставить matplotlib не рисовать верхние и правые шипы по умолчанию? шипы http://matplotlib.sourceforge.net/_images/whats_new_99_spines.png

Подробнее об информации о шипах в matplotlib здесь

спасибо

  • matplotlib: массивы с нулевыми числами с None в качестве значений
  • Ошибка Matplotlib: «цифра включает в себя оси, которые не совместимы с tight_layout»
  • Интерактивный выбор серий на графике matplotlib
  • Matplotlib сделать метки метки размер шрифта меньше
  • Как установить matplotlib с Python3.2
  • Программа зависает при использовании «matplotlib.mlab.griddata»
  • Цвет фона легенды matplotlib
  • Как форматировать формат номера оси до тысяч с запятой в matplotlib?
  • 2 Solutions collect form web for “Установка шипов в matplotlibrc”

    Чтобы скрыть правые и верхние шипы подлодки, вам необходимо установить цвет соответствующих шипов на 'none' , а также установить положение тика 'left' для xtick и 'bottom' для ytick (чтобы скрыть метки, а также шипы).

    К сожалению, ни один из них в настоящее время не доступен через matplotlibrc . Параметры, указанные в matplotlibrc , проверяются, а затем сохраняются в dict, называемом rcParams . Затем отдельные модули проверяют ключ в этом dict, значение которого будет действовать по умолчанию. Если они не проверяют его на один из своих вариантов, этот параметр не может быть изменен через файл rc .

    Из-за характера системы rc и того, как написаны шипы, изменение кода для этого не будет простым:

    Шипы в настоящее время получают свой цвет через один и тот же параметр rc используемый для определения цветов осей; вы не можете установить его в 'none' не скрывая весь чертеж вашей оси. Они также агностик в отношении того, являются ли они top , right , left или bottom – на самом деле это всего четыре отдельных шипа, хранящихся в dict. Отдельные объекты позвоночника не знают, какую часть сюжета они составляют, поэтому вы не можете просто добавлять новые параметры 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 для необходимых параметров.

    Чтобы matplotlib не рисовал верхний и правый шипы, можно установить следующее в файле matplotlibrc

     axes.spines.right : False axes.spines.top : False 
    Python - лучший язык программирования в мире.