Вы можете установить его, например, pylab.figure(facecolor=SOME_COLOR, ...)
или matplotlib.rcParams['figure.facecolor'] = SOME_COLOR
.Похоже, что его значение по умолчанию жестко закодировано , поэтому нет способа заставить MPL уважать тему GTK.
Вот конкретный пример того, как это сделать вPyGTK.Часть этой информации была взята из "Получить цвета текущего стиля gtk" и из gdk.Color документов.Я не дошел до установки шрифта и т. Д., Но это показывает базовую структуру, которая вам нужна.
Сначала определите следующую функцию:
def set_graph_appearance(container, figure):
"""
Given a GTK container and a Matplotlib "figure" object, this will set the
figure background colour to be the same as the normal colour of the
container.
"""
# "bg" is the background "style helper" object. It contains five different
# colours, for the five different widget states.
bg_style = container.get_style().bg[gtk.STATE_NORMAL]
gtk_color = (bg_style.red_float, bg_style.green_float, bg_style.blue_float)
figure.set_facecolor(gtk_color)
Затем вы можете подключиться ксигнал realize
(может быть, также сигнал map-event
, я не пробовал) и перекрасить график при создании содержащего виджета:
graph_panel.connect('realize', set_graph_appearance, graph.figure)
(Здесь graph_panel
- этоgtk.Alignment
и graph
- это подкласс FigureCanvasGTKAgg
, который имеет figure
член по необходимости.)