• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

pyecharts 分布式直方图绘制,的代码你值得拥有

武飞扬头像
源源佩奇
帮助1

相信很多小伙伴都有这个疑问。用pyecharts 怎么绘制直方图,官网也没有给接口,只有一个Bar()函数,可是那是柱状图的。但是python中的matplotlib中就有绘制直方图的函数Hist()。但是就是要用pyecharts怎么办呢?

今天遇到一个可视化需求,必须要用pyecharts绘制分布式直方图,但是pyecharts 官网又没有给出直方图函数。所以查阅了大量资料,遇到几篇很有意思的博客。明明标题是用pyecharts绘制直方图,内容确是牛头不对马嘴。真是老太太进被窝,给爷整笑了。

废话不多说,直接上代码。

首先pyecharts没有给出直方图函数,就只能自己去设计数据,然后把数据给Bar函数。

本人是基于jupyter写的代码,如果使用pycharm 最用展示图用render()  函数

  1.  
    # 生成一个长度一百,随机大小不大于100的一维数组
  2.  
    data = np.random.randint(100,size=(100,))
  3.  
     
  4.  
    # 获取4个区间,五个值
  5.  
    bins = np.linspace(0,100,5)
  6.  
    # array([ 0., 25., 50., 75., 100.])
  7.  
     
  8.  
    value = pd.cut(data,bins)
  9.  
    # [(75.0, 100.0], (0.0, 25.0], (25.0, 50.0], (25.0, 50.0], (0.0, 25.0],
  10.  
    #..., (25.0, 50.0], (50.0, 75.0], (25.0, 50.0], (50.0, 75.0], (25.0, 50.0]]
  11.  
    # Length: 100
  12.  
    # Categories (4, interval[float64]): [(0.0, 25.0] < (25.0, 50.0] < (50.0, 75.0]
  13.  
    # < (75.0, 100.0]]
  14.  
     
  15.  
    value = pd.value_counts(value).sort_index() # 进行统计计数,每个区间又多少个数
  16.  
    # (0.0, 25.0] 32
  17.  
    # (50.0, 75.0] 28
  18.  
    # (25.0, 50.0] 22
  19.  
    # (75.0, 100.0] 18
  20.  
     
  21.  
    x_value = [ f'{round(i.left,2)}-{round(i.right,2)}' for i in value.index ]
  22.  
    # ['0.0-25.0', '25.0-50.0', '50.0-75.0', '75.0-100.0']
  23.  
     
  24.  
    value= value.tolist() # 按索引进行排序(为了x轴,从大到小的关系,不然50-75这个区间排第二,value_counts默认降序排列导致),转换成列表,在pyecharts 只支持python的基本数据类型
  25.  
    # (0.0, 25.0] 21
  26.  
    # (25.0, 50.0] 28
  27.  
    # (50.0, 75.0] 20
  28.  
    # (75.0, 100.0] 31
  29.  
    # dtype: int64
  30.  
    bar = charts.Bar()
  31.  
     
  32.  
    bar.add_xaxis(x_value )
  33.  
    bar.add_yaxis('区间数量',value)
  34.  
     
  35.  
    bar.set_global_opts(
  36.  
    xaxis_opts=opts.AxisOpts(
  37.  
    name='bin值'
  38.  
    ),
  39.  
    yaxis_opts=opts.AxisOpts(
  40.  
    name = '数量值'
  41.  
    )
  42.  
    )
  43.  
     
  44.  
    bar.render_notebook()
学新通

学新通

小小代码不成敬意。

有用就收藏吧。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfgbec
系列文章
更多 icon
同类精品
更多 icon
继续加载