Попытка нарисовать сложенный участок с 20+ сериями - PullRequest
0 голосов
/ 23 октября 2019

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

Набор данных выглядит следующим образом:

------------------------------------------------------------------------------
user signup month | login month | monthly login count | cumulative login count

------------------------------------------------------------------------------
2016-01           | 2016-01     |  50                 | 50
2016-01           | 2016-02     |  25                 | 75
2016-01           | 2016-03     |  15                 | 90
...
2019-05           | 2019-05     | 1000                | 1000
2019-05           | 2019-06     | 500                 | 1500
------------------------------------------------------------------------------

Проблема заключается в том, что когда я пытаюсь отобразить его в своем ноутбуке Python, используя

x=data['login_month']
y=data['cumulative_login_count']

plt.figure(figsize=(20,10))
plt.stackplot(x,y, labels=['user_signup_month'])
plt.legend(loc='upper left')
plt.show()

, он отображается какодна серия, а не одна серия за отдельный месяц регистрации пользователя по желанию. enter image description here

пример ожидаемого результата: enter image description here

Примеры, которые я набрал в Google, все вручную вводятся в данные серии, дляпример:

data={'A': [-378, -2347, 509, 987, 513], 
                        'B': [-527, -2599, 765, 533, 670], 
                        'C': [-2343, -2273, 2093, 2197, 1990], 
                        'D': [-1845, -1853, 3325, 1306, 2160]}

, что для меня непрактично и неустойчиво.

Я также довольно новичок в визуализации Python, поэтому я не совсем уверен, какие поисковые термины наиболее эффективны, но я обнаружил, что результаты "составной таблицы трассировок множественных рядов python matlibplot" ссылаются только на вышеуказанное решение с введенными вручную данными ряда

1 Ответ

1 голос
/ 24 октября 2019

Вы можете и всегда должны приводить пример своих данных. Это не должно быть полным, но представительным. Например:

    signup    login  log_count
0  2016-01  2016-02         16
1  2016-01  2016-03         11
2  2016-01  2016-04         26
3  2016-01  2016-05         29
4  2016-02  2016-03         25
5  2016-02  2016-04         11
6  2016-02  2016-05         11
7  2016-03  2016-04         28
8  2016-03  2016-05         23
9  2016-04  2016-05         12

Теперь, с этими игрушечными данными, мы можем получить график площади / стека следующим образом:

(df.pivot(index='login', 
          columns='signup', 
          values='log_count')
   .plot.area(figsize=(10,6))
)

Вывод:

enter image description here

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