Histogram的作用是将数据分为几个阶段,然后统计每个阶段的数据个数。
比如有一组数据[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
如果使用Histogram展示,默认将数据分为三个阶段,也就是0-40,50-90,100-140,然后统计出每个阶段有多少条数据,当然,这个具体是计数还是求和,可以通过属性设置的
- visible
- showlegend
- opacity
- name
- hoverinfo
- hoverlabel
- x : 设置x轴方向的数据,这里x和y请选择其中一个,这是自动统计的,所以只需要一个设置数据就好,类型是数组;(必要,x和y任选一个)
- y : 设置y轴方向的数据,x和y任选一个,类型是数组;(必要,x和y任选一个)
- text
- hovertext
- histfunc
- histnorm
- nbinsx : 设置阶段数量,不设置是它自己分配多少个阶段,如果这里设置了10个阶段,那么上面就会变成每个都是一个;(重要)
- xbins : 设置x轴阶段数量,相比较上面的更加灵活,这是一个字典,可以设置起始、终止、每个阶段大小,比如:{'start': 0, 'end': 100, 'size': 20},这么设置之后,上面的就变成5个阶段,每个阶段是20;优先级高于nbinsx (重要)
- nbinsy : 设置阶段数量,只是y轴方向的;(重要)
- ybins : 同xbins;(重要)
- bingroup
下面来个小示例:
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
app = dash.Dash()
server = app.server
def get_show_histogram():
scty = [
# 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
3607, 3834, 3904, 4080, 3997,
3999, 3956, 4106, 4371, 4401,
4083, 3982, 3940, 3825, 3799,
3935, 4187, 4037, 3844, 3862,
]
trace = go.Histogram(
x=scty,
# histfunc='sum',
# histnorm='probability',
# hoverinfo='text',
# text='数量',
# hovertext='总计',
# y=scty,
# nbinsx=10,
# xbins={
# 'start': 0,
# 'end': 100,
# 'size': 20
# },
# name='新用户',
# visible=False
# showlegend=False
# legendgroup='group1'
)
layout = go.Layout(
title='活跃用户',
# yaxis={
# 'hoverformat': '.2%',
# }
)
return go.Figure(
data=[trace],
layout=layout
)
app.layout = html.Div([
dcc.Graph(
id='show_scatter',
figure=get_show_histogram()
),
], style={'margin': 100})
if __name__ == '__main__':
app.run_server(debug=True)
显示结果是这样的:
如果我设置了nbinsx为10,结果是这样的:
自动分为10个阶段了~