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