Dash-基础显示组件学习之Histogram(直方图)Python-Dash-Histogram-可视化数据分析

Histogram的作用是将数据分为几个阶段,然后统计每个阶段的数据个数。

比如有一组数据[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

如果使用Histogram展示,默认将数据分为三个阶段,也就是0-40,50-90,100-140,然后统计出每个阶段有多少条数据,当然,这个具体是计数还是求和,可以通过属性设置的

- visible : 是否显示直方图,默认True;

- showlegend : 是否显示右边的小标签说明,默认True;

- opacity : 设置透明度,默认1;

- name : 设置直方图的名称,string;

- hoverinfo : 设置浮标显示内容,可以是‘x’、‘y’、‘z’、‘text’、‘name’,也可以是任意组合,默认‘all’;

- hoverlabel : 设置浮标的显示风格,可以设置颜色、大小、对齐方式、name长度限制等等;

- x : 设置x轴方向的数据,这里x和y请选择其中一个,这是自动统计的,所以只需要一个设置数据就好,类型是数组;(必要,x和y任选一个

- y : 设置y轴方向的数据,x和y任选一个,类型是数组;(必要,x和y任选一个

- text : 设置浮标上显示的text内容,可以是固定字符串,也可以是一个字符串数组;

- hovertext : 设置浮标上显示的text内容,同上面的text,如果有hovertext,那么text不起作用;

- histfunc :设置直方图每个阶段使用的方法,默认是‘count’,也就是计数,可以是‘sum’求和、‘svg’平均值、‘min’最小值、‘max’最大值;(目前这个没试出来,不知道为啥没起作用)

- histnorm : 设置直方图每个阶段统计的显示方式,默认是空,就是计数,可以是‘percent’百分比,‘probability’占比,‘density’密度;

- nbinsx : 设置阶段数量,不设置是它自己分配多少个阶段,如果这里设置了10个阶段,那么上面就会变成每个都是一个;(重要

- xbins : 设置x轴阶段数量,相比较上面的更加灵活,这是一个字典,可以设置起始、终止、每个阶段大小,比如:{'start': 0, 'end': 100, 'size': 20},这么设置之后,上面的就变成5个阶段,每个阶段是20;优先级高于nbinsx (重要

- nbinsy : 设置阶段数量,只是y轴方向的;(重要

- ybins : 同xbins;(重要

- bingroup : 设置每个阶段分组,string;

下面来个小示例:

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个阶段了~

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏小败在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值