2017-02-13 3 views
0

Я пытаюсь определить набор функций, которые устанавливают стили построения по умолчанию matplotlib для показателей качества публикации. Я делаю это, используя команду rc (или matplotlib.rcParams['key'] = value). Я нашел список доступных опций, используя matplotlib.rcParams.keys(). Может быть, мне что-то не хватает, но кажется, что некоторые вещи отсутствуют для таких вещей, как scatter и errorbar.Ошибка настройки байт по умолчанию rcParams matplotlib

from matplotlib import rc, cycler 

# DATA GLOBALS 
DATA_LINE_COLOR = 'black' 
DATA_LINE_STYLE = '-' 
DATA_LINE_WIDTH = 0.5 
MODEL_LINE_COLOR = 'red' 
MODEL_LINE_STYLE = '-' 
MODEL_LINE_WIDTH = 0.7 

# AXES GLOBALS 
AXES_LINE_WIDTH = 0.5 
AXES_MAJOR_TICK_LENGTH = 5 
AXES_MINOR_TICK_LENGTH = AXES_MAJOR_TICK_LENGTH/2. 
AXES_TICK_DIRECTION = 'in' 

# FIGURE GLOBALS 
ONE_COL_WIDTH = 3.46 
TWO_COL_WIDTH = 7.09 
DPI = 800 

def general(): 
    """ 
    General settings for all plot types. Call this first, 
    then call any cascading style required 
    """ 
    rc('font', family='Times New Roman', size=10) 
    rc('text', color='black') 
    rc('figure', dpi=DPI) 
    rc('axes', 
     xmargin=0.05, 
     ymargin=0.05, 
     linewidth=AXES_LINE_WIDTH, 
     prop_cycle=cycler('color',['black'])) 
    rc('axes.formatter', limits=(-4, 4)) 
    rc('xtick', direction=AXES_TICK_DIRECTION) 
    rc('xtick.major', 
     size=AXES_MAJOR_TICK_LENGTH, 
     width=AXES_LINE_WIDTH) 
    rc('xtick.minor', 
     visible=True, 
     size=AXES_MINOR_TICK_LENGTH, 
     width=AXES_LINE_WIDTH) 
    rc('ytick', direction=AXES_TICK_DIRECTION) 
    rc('ytick.major', 
     size=AXES_MAJOR_TICK_LENGTH, 
     width=AXES_LINE_WIDTH) 
    rc('ytick.minor', 
     visible=True, 
     size=AXES_MINOR_TICK_LENGTH, 
     width=AXES_LINE_WIDTH) 

Например, в случае errorbar есть только один вариант для настройки, который errorbar.capsize. Я бы ожидал других вариантов, таких как errorbar.ecolor и errorbar.elinewidth и т. Д. Можно ли установить эти значения по умолчанию в параметрах rc? Может быть, они унаследованы из других стран?

Я знаю, что могу установить их явно при каждом вызове ax.errorbar, но хочу поделиться набором функций, которые задают параметры по умолчанию с коллегами, чтобы мы могли создавать согласованные цифры.

ответ

1

Из документации в plt.errorbar вы можете видеть, откуда эти значения унаследованы.

ecolor: MPL цвет, необязательный, по умолчанию: Нет

Matplotlib цвет Арг, который дает цвет по errorbar линии; Если Нет, используйте цвет линии, соединяющей маркеры.

elinewidth: скаляр, необязательный, по умолчанию: Нет

Ширина линии из errorbar линий. Если нет, используйте ширину линии.

capthick: скаляр, необязательный, по умолчанию: Нет

Псевдоним kwarg в markeredgewidth (а.к.а. - линька). Этот параметр является более разумным именем для свойства, которое контролирует толщину шапки панели ошибок в точках. Для обратной совместимости, если заданы mew или markeredgewidth, они будут перегружены capthick. Это может измениться в будущих выпусках.

Таким образом, вы должны быть в состоянии контролировать цвет, используя lines.color rcParam, на errorbar ширину линии, используя lines.linewidth rcParam, а толщина крышки с помощью lines.markeredgewidth rcParam.

Очевидно, что это может отрицательно повлиять на другие свойства ваших участков, но я не думаю, что их можно контролировать с помощью rcParams без изменения этих свойств.

+0

Спасибо за ваш ответ. Кажется странным связать их с линией, но затем не дает возможности явно устанавливать значения по умолчанию для разных. Если я хочу удалить акцент на барах ошибок, например (построив тонкие светло-серые полосы и черные точки), то установка линий для баров ошибок будет сбросить любые другие строки на графиках. Может быть, есть место, чтобы улучшить это в matplotlib, чтобы сделать его более гибким. Я могу предложить это в трекер проблемы. –

 Смежные вопросы

  • Нет связанных вопросов^_^