Как мне отформатировать фон подплота, используя rcParams? - PullRequest
0 голосов
/ 27 октября 2019

ОБНОВЛЕНИЕ: Несмотря на то, что здесь есть подобное обсуждение здесь Я держу свой вопрос, учитывая запутанный / неинтуитивный атрибут, который необходимо использовать для изменения цвета фона подпункта. Надеюсь, что язык, который я использую для описания проблемы, в дальнейшем поможет некоторым запутанным кодировщикам.

ПРЕДПОСЫЛКИ: Мне нужно построить серию диаграмм с различными форматами и данными. При использовании стандартного стиля Matplotlib, вот пример того, что я получаю. Обратите внимание, что фоны FIGURE и SUBPLOTS имеют белый цвет.

All white background

С помощью rcParams я могу быстро изменить настройки для всех своих диаграмм, что позволяет избежатьмне нужно изменить формат для каждого графика в отдельности. Это также помогает мне поддерживать определенный стандарт в моих графиках, делая их профессиональными.

ВОПРОС: Как и во всех моих электронных таблицах (см. здесь код, который я написалчтобы преобразовать электронные таблицы Excel в темный формат), браузеры и т. д. все в темном формате, я хотел, чтобы моя диаграмма на Python также была в темном формате. Использование rcParams было лучшим способом сделать это, учитывая, насколько маленький код:

import matplotlib.pyplot as plt

    rgb_color = [51,51,51] #color in RGB format
    rgb_decimal_1 = [x / 255.0 for x in rgb_color] #RGB color in "decimals"

    #set colors for all charts parameters
    params = {'text.color':'white', 'xtick.color':'white', 'ytick.color':'white', 'figure.facecolor':rgb_decimal_1} 
    plt.rcParams.update(params)

С помощью этого простого кода я меняю почти все цвета, которые мне нужны, чтобы сделать мои диаграммы темными. Есть одна часть, однако я не могу найти способ сделать это: фон SUBPLOT. Посмотрите, как выглядят те же диаграммы, когда рутируете код выше. Обратите внимание, что хотя фон FIGURE теперь темный (а буквы белые и т. Д.), Фоны SUBPLOT по-прежнему белые:

Figure dark background

Обратите внимание, чтоЯ знаю, как сделать сюжеты темными. Если я добавлю простой код, приведенный ниже, при построении каждого субплота , я могу сделать фон субплота темным. См. Результат сразу после кода:

rgb_color = [41,41,41] #color in RGB format
rgb_decimal = [x / 255.0 for x in rgb_color] #RGB color in decimal format
chart_p.set_facecolor((rgb_decimal)) #set color background of each chart subplot

All dark background

Необходим код выше, указанный на каждом участке, однако это именно то, что я хочучтобы избежать. Документация по использованию rcParams очень хороша (см. здесь ). Но я не могу найти настройки для фонов SUBPLOT. Я ожидал от «параметров подгруппы фигур» что-то вроде figure.subplot.facecolor , но его не существует.

Я что-то упускаю из виду? Я знаю, что есть способ установить цвет фона SUBPLOT, поскольку, если я использую стиль «темный фон» [plt.style.use ('dark_background')], фон SUBPLOT диаграмм становится черным. Закрыть, но не тот цвет, который я хочу.

1 Ответ

0 голосов
/ 27 октября 2019

Похоже, я упустил что-то очевидное! Спасибо @busybear за ответ на мой вопрос через две минуты! Атрибут, который я должен использовать, это «axes.facecolor» (что печально, что я посмотрел на все атрибуты с «facecolor» в нем и был уверен, что «axes.facecolor» не был этим ...). Ниже приведен новый код, который теперь делает все мои графики подзаговорами с темным фоном:

import matplotlib.pyplot as plt

    rgb_color = [51,51,51] #color in RGB format
    rgb_decimal_1 = [x / 255.0 for x in rgb_color] #RGB color in "decimals"

    rgb_color = [41,41,41] #color in RGB format
    rgb_decimal_2 = [x / 255.0 for x in rgb_color] #RGB color in decimal format

    #set colors for all charts parameters
    params = {'text.color':'white', 'xtick.color':'white', 'ytick.color':'white', 'figure.facecolor':rgb_decimal_1, 'axes.facecolor':rgb_decimal_2} 
    plt.rcParams.update(params)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...