Могу ли я сгенерировать блокпост без набора данных и только с соответствующими значениями (медиана, квартили и т. Д.) В matplotlib? - PullRequest
0 голосов
/ 04 января 2019

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

Есть ли способ с помощью matplotlib (или seaborn) вручную указать каждое из этих значений вместо предоставления массива данных (мне не нужны выбросы)?Я попытался просмотреть документацию и не нашел ничего особенно актуального, но, возможно, я что-то упустил.

Что-то вроде:

plt.boxplot(median=median_val, quartiles=(lower, upper), range=(min, max))

было бы идеально.Я также открыт для любых веб-решений.

1 Ответ

0 голосов
/ 04 января 2019

В matplotlib есть встроенная функция - bxp - которая позволяет вам определять вычисленную статистику, а не необработанные данные для вычисления, избегая необходимости создавать свою собственную функцию.

Вам нужно будет вызывать его как метод из вашего Axes объекта, а не из plt:

import matplotlib.pyplot as plt

stats = [
    {'med': 5, 'q1': 2, 'q3': 6, 'whislo': 1, 'whishi': 8},
    {'med': 4, 'q1': 2, 'q3': 6, 'whislo': 1, 'whishi': 8}
]

_, ax = plt.subplots();
ax.bxp(stats, showfliers=False);

Важно, что ваши входные данные должны представлять собой список словарей, соответствующихк списку ящиков (даже если только 1) для рисования.

enter image description here

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