Подтвердить что ты не робот

Лучший способ отображать графики Seaborn/Matplotlib с темным профилем ноутбука iPython

Я использую фантастическую библиотеку Seaborn для некоторых сводных статистических данных в IPython Notebook. Недавно я переключился на темную тему цвета для своих ноутбуков, и я стараюсь выяснить, какие лучшие взгляды на Сиборн на темном фоне. Я использую стиль darkgrid, но легенды все еще печатаются черным цветом, что делает их невозможными для чтения. Вот пример:

Seaborn on dark background

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

UPDATE: Я просто заметил, что та же проблема существует с моими графиками Matplotlib. Поэтому мой вопрос более общий. Какие стили вы используете, чтобы позволить белым на темных графиках, чтобы легенды были читабельны?

4b9b3361

Ответ 1

Вы можете настроить стиль морского дерева, и он пытается сделать это относительно легко.

Если вы хотите увидеть каждый из параметров, которые считаются частью определения стиля, просто вызовите sns.axes_style() без аргументов, и он вернет текущие настройки. Начиная с версии 0.3.1 и для стиля по умолчанию ( "darkgrid" ), это выглядит следующим образом:

{'axes.axisbelow': True,
 'axes.edgecolor': 'white',
 'axes.facecolor': '#EAEAF2',
 'axes.grid': True,
 'axes.labelcolor': '.15',
 'axes.linewidth': 0,
 'font.family': 'Arial',
 'grid.color': 'white',
 'grid.linestyle': '-',
 'image.cmap': 'Greys',
 'legend.frameon': False,
 'legend.numpoints': 1,
 'legend.scatterpoints': 1,
 'lines.solid_capstyle': 'round',
 'pdf.fonttype': 42,
 'text.color': '.15',
 'xtick.color': '.15',
 'xtick.direction': 'out',
 'xtick.major.size': 0,
 'xtick.minor.size': 0,
 'ytick.color': '.15',
 'ytick.direction': 'out',
 'ytick.major.size': 0,
 'ytick.minor.size': 0}

Хорошая эвристика заключается в том, что вам, вероятно, нужны только параметры с "color" в имени, поэтому вы можете его фильтровать:

{k: v for k, v in sns.axes_style().items() if "color" in k}

возвращает

{'axes.edgecolor': 'white',
 'axes.facecolor': '#EAEAF2',
 'axes.labelcolor': '.15',
 'grid.color': 'white',
 'text.color': '.15',
 'xtick.color': '.15',
 'ytick.color': '.15'}

Затем вы можете передать пользовательский словарь со значениями для этих параметров в sns.set_style():

custom_style = {'axes.labelcolor': 'white',
                'xtick.color': 'white',
                'ytick.color': 'white'}
sns.set_style("darkgrid", rc=custom_style)

Ответ 2

sns.set_style("darkgrid")

Сделайте фоновый белый, чтобы вы могли видеть текст.

введите описание изображения здесь

Ответ 3

Я считаю, что добавление этого

plt.figure(facecolor='w')

каждый раз, когда я рисую, осматривает фон осей.

Ответ 4

Почему бы просто не

plt.style.use("dark_background")