Как построить медиану (с разбивкой по категориям) для каждого из них в пределах своей минимальной / максимальной полосы? - PullRequest
0 голосов
/ 02 сентября 2018

Я использую pandas и matplotlib, чтобы попытаться построить временные ряды кадра данных, где каждая «группа по» категориального столбца должна отображаться как «средний столбец» в пределах полосы с «мин / макс».

Временные ряды представляют собой серию объектов datetime, представляющих начало квартала, а также являются индексом кадра данных.

Иногда я получаю ValueError: ordinal must be >= 1, даже если я пытался очистить историю matplotlib с предыдущих графиков с помощью таких команд, как plt.clf() и plt.close('all').

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

Иногда я получаю KeyError в поле datetime (которое я также сделал индексом с помощью команды pair_filtered_df.set_index('year_quarter', inplace=True) и анализирую datetime при загрузке файла CSV с использованием pd.read_csv с параметром parse_dates=['year_quarter'])

Это код:

fig, ax = plt.subplots()
for key, grp in pair_filtered_df.groupby(['category']):
    # trying to plot only for one category
    # in an attempt to isolate/reproduce the error
    if key == "a":
        ax = grp.plot(ax=ax, kind='line', x='year_quarter', y='median', label=key)
        # according to some examples I've see this
        # `fill_between` should allow plotting
        # a "min/max" band wrapping the "median"
        plt.fill_between(grp.index, grp['min'], grp['max'], color='b', alpha=0.2)

При запуске pair_filtered_df.head(), тогда я вижу эту структуру кадра данных:

enter image description here

При запуске pair_filtered_df.tail() тогда я вижу эту структуру кадра данных:

enter image description here

Я не могу найти способ устранить эту проблему, в основном потому, что я не совсем понимаю, как обращаться с индексом, используя pandas и как plt из matplotlib работает, "делая скрытые вещи", но Я продолжаю видеть много разных ошибок.

Как я могу построить эти временные ряды с разбивкой по категориям и используя минимальные / максимальные полосы?

Как можно изобразить разные категории с разными «семейными цветами» для диапазона мин / макс и медианы?

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