matplotlib: изменить цвет линии компонента панели ошибок в блочной диаграмме

Я нашел этот связанный с этим старый вопрос. Грустно. error_kw больше не существует (с использованием matplotlib версии 1.5.0). Словарь capprops действительно работает только в шапке.

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

пример блока с указанием того, что я хотел бы изменить


person Faultier    schedule 24.11.2015    source источник


Ответы (1)


Это «бакенбарды», которые возвращает boxplot. Переберите их и установите стиль соответственно:

import matplotlib.pyplot as plt
import numpy as np

# fake up some data
spread = np.random.rand(50) * 100
center = np.ones(25) * 50
flier_high = np.random.rand(10) * 100 + 100
flier_low = np.random.rand(10) * -100
data = np.concatenate((spread, center, flier_high, flier_low), 0)

plt.figure()
bp = plt.boxplot(data, 1)

for whisker in bp['whiskers']:
    whisker.set(color='#ff0000',lw=2)
plt.show()

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

person xnx    schedule 24.11.2015
comment
вау, я полностью пропустил это. спасибо за быстрый ответ, я даже не могу его принять (: - person Faultier; 24.11.2015
comment
Не волнуйтесь. Кстати, вы можете установить стили кепки, чтобы они совпадали, перебирая bp['caps']. - person xnx; 24.11.2015
comment
Хороший ответ. Вы даже можете сделать это без явного цикла: plt.setp(bp['whiskers'], color='#ff0000', lw=2) - person hitzg; 24.11.2015