Гистограмма Seaborn делает колонки белыми - PullRequest
2 голосов
/ 11 января 2020

В каких случаях Seaborn делает столбцы гистограммы белыми? Я использую его Seaborn в блокноте Jupyter:

import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

Затем я строю гистограмму, используя эту функцию:

def plot_hist(data, xlabel, bins=None):

  if not bins:
      bins = int(np.sqrt(len(data)))

  _= plt.xlabel(xlabel)
  _= plt.hist(data, bins=bins)

В результате в некоторых случаях у меня есть гистограммы со всеми синими столбцами или синими и некоторые белые или только белые столбцы. Пожалуйста, смотрите прикрепленные изображения.

Как заставить Seaborn всегда рисовать синие столбцы?

blue columns

blue and white

white

1 Ответ

3 голосов
/ 12 января 2020

Я считаю, что проблема в том, что edgecolor для гистограммы равно white, и когда вы увеличиваете количество бинов или уменьшаете ширину столбцов, edgecolor начинает покрывать facecolor. Вы должны быть в состоянии исправить это, используя более высокое значение dpi,

# globally
from matplotlib import rcParams
rcParams['figure.dpi'] = 300
# or for only this figure
fig = plt.figure(dpi=300)

тоньше linewidth,

# globally
from matplotlib import rcParams
rcParams['patch.linewidth'] = 0.5
# or for only this plot
_= plt.hist(data, bins=bins, linewidth=0.5)

или вообще убрав контур,

_= plt.hist(data, bins=bins, edgecolor=‘none’)

Обратите внимание, что глобальные методы, возможно, должны быть после sns.set(), поскольку это может переопределить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...