У меня есть следующий фрейм данных в pandas df_res, мы можем вызвать его с помощью нескольких строк, как показано.
date time weekday team recipient
2019-08-30 14:49:22 Friday team1 [email protected]
2019-08-30 05:57:51 Friday team1 notification@listcom
2019-08-29 22:54:58 Thursday team1 [email protected]
2019-08-29 22:54:58 Thursday team1 [email protected]
2019-08-30 06:26:12 Friday team1 [email protected]
2019-09-05 14:16:22 Thursday team1 [email protected]
2019-09-05 14:16:22 Thursday team1 [email protected]
2019-09-04 22:54:59 Wednesday team1 [email protected]
2019-09-04 22:54:59 Wednesday team1 [email protected]
Я хочу построить диаграмму, на которой по оси X отложена дата с июня 2019 года по октябрь 2019 года. Ось Y - это количество раз, когда получатель получал электронное письмо в заданную дату. Поэтому я хотел бы сделать столбчатую диаграмму с накоплением, где каждая стопка будет получателем. Например: на дату «2019-08-30» есть 2 письма для «[email protected]» и 1 для «notification @ listcom». Так что на этот день у меня будет две стопки. Я также хочу иметь возможность предоставить список нескольких получателей, количество адресов электронной почты которых меня интересует. Я написал приведенный ниже код, чтобы сделать то же самое, но я не могу понять, как подсчитать количество получателей. Вместо этого, если счетчик представляет собой список или столбец, я могу построить график, но это бесполезно для меня, поскольку фрейм данных огромен, более тысячи строк.
import plotly.graph_objects as go
import datetime
x = [datetime.datetime(year=2019, month=06, day=4),
datetime.datetime(year=2019, month=11, day=5),
datetime.datetime(year=2019, month=13, day=6)]
y = [2, 2, 5]
fig = go.Figure(data=[go.Bar(x=x, y=y)])
# Use datetime objects to set xaxis range
fig.update_layout(xaxis_range=[datetime.datetime(2019, 06, 17),
datetime.datetime(2019, 10, 7)])
fig.show()
ОБНОВЛЕНО ДОБАВИТЬ КОД: 10/11/2019 # построение значений
trace = go.Bar(
x=[datetime.datetime(year=2019, month=8, day=1),
datetime.datetime(year=2019, month=10, day=1)],
y=[res_test['recipients'].value_counts()],
name='Plot the values '
)
data = [trace]
layout = go.Layout(title="Emails per volunteer", xaxis=
{'title':'Date'}, yaxis={'title':'Email count'},
barmode='stack'
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig)
Так я передаю значение оси Y?