我有一个csv,我正在尝试创建in的直方图。 csv包含日期字段(以小时为单位),用户计数字段和平均连接时间字段。我正在尝试使用以下代码段绘制用户计数字段值的时间图。从代码中可以看出,我还尝试根据用户从下拉菜单中选择时间范围来重新分配xbin。
不幸的是,所生成的图形似乎不正确,因为它每天返回的值为1或4。这与每小时有多个用户#的csv本身不符。
我以为问题是我修改垃圾箱/聚合的方式,但是我似乎无法弄清楚到底是什么错误。任何帮助表示赞赏。
代码段:
df['END TIME'] = pd.to_datetime(df['END TIME'])
df['END TIME'] = df['END TIME'].dt.round('H')
df.to_csv(r"C:\temp\test.csv")
data = [dict(
x=df['END TIME'],
y=df['USER COUNT'],
autobinx=False,
autobiny=True,
marker=dict(color='rgb(68, 68, 68)'),
name='date',
type='histogram',
xbins=dict(
end= df['END TIME'].max(),
size='3600000',
start=df['END TIME'].min()
)
)]
layout = dict(
paper_bgcolor='rgb(240, 240, 240)',
plot_bgcolor='rgb(240, 240, 240)',
title='<b>User Count</b>',
xaxis=dict(
title='',
type='date'
),
yaxis=dict(
title='User Count',
type='linear'
),
updatemenus=[dict(
x=0.1,
y=1.15,
xref='paper',
yref='paper',
yanchor='top',
active=1,
showactive=True,
buttons=[
dict(
args=['xbins.size', '3600000'],
label='Hour',
method='restyle',
), dict(
args=['xbins.size', 'D1'],
label='Day',
method='restyle',
), dict(
args=['xbins.size', 'M1'],
label='Month',
method='restyle',
), dict(
args=['xbins.size', 'M3'],
label='Quarter',
method='restyle',
), dict(
args=['xbins.size', 'M6'],
label='Half Year',
method='restyle',
), dict(
args=['xbins.size', 'M12'],
label='Year',
method='restyle',
)]
)]
)
fig_dict = dict(data=data, layout=layout)
pio.show(fig_dict, validate=False)
需要在数据变量声明中添加histfunc =“ avg”。