【发布时间】:2020-02-08 14:15:22
【问题描述】:
我在 pandas df_res 中有以下数据框,我们可以用如图所示的几行来调用它。
date time weekday team recipient
2019-08-30 14:49:22 Friday team1 building308@list.com
2019-08-30 05:57:51 Friday team1 notification@listcom
2019-08-29 22:54:58 Thursday team1 robert.r@gmail.com
2019-08-29 22:54:58 Thursday team1 emcor@list.com
2019-08-30 06:26:12 Friday team1 building308@list.com
2019-09-05 14:16:22 Thursday team1 pqr@xyz.com
2019-09-05 14:16:22 Thursday team1 flash_hvac@list.com
2019-09-04 22:54:59 Wednesday team1 robert.r@gmail.com
2019-09-04 22:54:59 Wednesday team1 emcor@list.com
我想绘制一个图表,其中 x 轴是从 2019 年 6 月到 2019 年 10 月的日期。y 轴是收件人在给定日期收到电子邮件的次数。所以我想做一个堆积条形图,每个堆栈都是一个接收者。例如:在“2019-08-30”日期,“building308@list.com”有 2 封邮件,“notification@listcom”有 1 封邮件。所以那天我会有两堆。我还希望能够提供我感兴趣的几个收件人的列表。我编写了下面的代码来做同样的事情,但我正在努力计算收件人的数量。相反,如果计数是一个列表或列,我可以绘制,但这对我没有用,因为数据框很大,有超过一千行。
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()
更新以添加代码:2019 年 10 月 11 日 # 绘制值
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 轴的方式吗?
【问题讨论】:
标签: python python-3.x pandas plotly-python