проблемы с настройками медианного цвета pandas - boxplot

я запускаю Pandas 0.16.2 и Matplotlib 1.4.3. У меня есть эта проблема, окрашивающая медиану boxplot, генерируемую следующим кодом:

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

fig, ax = plt.subplots()

medianprops = dict(linestyle='-', linewidth=2, color='blue')

bp = df.boxplot(medianprops=medianprops)

plt.show()

что возвращает:

enter image description here

получается, что color настройка не читать. Изменение только настроек linestyle и linewidth сюжет реагирует правильно.

medianprops = dict(linestyle='-.', linewidth=5, color='blue')

enter image description here

кто может его воспроизвести?

2 ответов


глядя на код DataFrame.boxplot() существует специальный код для обработки цветов различных элементов, который заменяет kws передан библиотек matplotlib это boxplot. В теории, кажется, есть способ пройти


на самом деле следующий обходной путь работает хорошо, возвращая dict из команды boxplot:

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

fig, ax = plt.subplots()

bp = df.boxplot(return_type='dict')

а затем назначить непосредственно цвета и ширину линии медиан с:

[[item.set_color('r') for item in bp[key]['medians']] for key in bp.keys()]
[[item.set_linewidth(0.8) for item in bp[key]['medians']] for key in bp.keys()]