Усы Seaborn Boxplot отсутствуют только в одной категории - PullRequest
0 голосов
/ 09 октября 2019

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

fig, ax = plt.subplots(1, 1, figsize = (60,30))

plt.axhline(y = 0, color = 'k', linestyle = ':', linewidth = 2)

ax = sns.boxplot(x = 'Neighborhood', y = 'Price difference', data = sf_data_residuals_neighborhoods, 
                 showfliers = False, order = list(neighborhood_order_residuals['Neighborhood']), linewidth = 5)
ax = sns.stripplot(x = 'Neighborhood', y = 'Price difference', data = sf_data_residuals_neighborhoods,
                 order = list(neighborhood_order_residuals['Neighborhood']), jitter = 0.25, size = 15,
                 linewidth = 3, edgecolor = 'black', alpha = 0.5)

# set axis properties
plt.xticks(rotation=45, fontname = 'Helvetica', fontsize = 42, ha = 'right')
plt.yticks(fontname = 'Helvetica', fontsize = 42)


plt.xlabel('San Francisco neighborhood', fontsize = 55, fontname = 'Arial', fontweight = 'bold')
plt.ylabel('Actual - predicted price ($M)', fontsize = 55, fontname = 'Arial', 
           fontweight = 'bold')

scale = 1000000; ax.set_ylim(-1000000, 3000000); ax.yaxis.labelpad = 25
ticks = ticker.FuncFormatter(lambda y, pos: '{0:g}'.format(y/scale))
ax.xaxis.set_tick_params(width = 3, length = 15)
ax.yaxis.set_tick_params(width = 3, length = 15)
ax.yaxis.set_major_formatter(ticks)
plt.setp(ax.spines.values(), linewidth = 3)

Это дает желаемый график, но, похоже, не учитывает усы для категории Потреро Хилл:

Whiskers are present for all categorical variables except 'Potrero Hill'

Я пытался вручную установить настройку whis = 1.5 по умолчанию в sns.boxplot(), но это не приводит к появлению отсутствующих усов.

ЛюбойИдея, что может быть причиной этого?

...