В matplotlib, как вы изменяете размер шрифта одной фигуры? - PullRequest
2 голосов
/ 16 августа 2011

код:

# changes the fontsize of matplotlib, not just a single figure
matplotlib.rcParams.update({'font.size': 22})

Есть ли лучший способ, чем установить его для фигуры, а затем вернуть обратно?

1 Ответ

3 голосов
/ 16 августа 2011

Это охватывает все возможные текстовые объекты и устанавливает размер шрифта для каждого. (Обратите внимание, что эта процедура была обновлена ​​с оригинальной публикации). Он использует метод findobj базового класса Artist. Ключевое слово match принимает булеву функцию, которая выполняет тест для каждого объекта, являющегося дочерним элементом фигуры. Я использую это, чтобы проверить, находится ли художник в модуле 'matplotlib.text'. Это достаточно универсально, чтобы использовать его для любого художника, а не просто для фигуры.

def set_fontsize(fig,fontsize):
    """
    For each text object of a figure fig, set the font size to fontsize
    """
    def match(artist):
        return artist.__module__ == "matplotlib.text"

    for textobj in fig.findobj(match=match):
        textobj.set_fontsize(fontsize)

Это было обновлено на основе ответов на этот вопрос: Что-то не так с импортом модуля python в определение подпрограммы или класса?

...