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

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

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

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

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

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

# 生成一个长度一百,随机大小不大于100的一维数组
data = np.random.randint(100,size=(100,))
 
# 获取4个区间,五个值
bins = np.linspace(0,100,5)
# array([  0.,  25.,  50.,  75., 100.])
 
value = pd.cut(data,bins)
# [(75.0, 100.0], (0.0, 25.0], (25.0, 50.0], (25.0, 50.0], (0.0, 25.0], 
#..., (25.0, 50.0], (50.0, 75.0], (25.0, 50.0], (50.0, 75.0], (25.0, 50.0]]
# Length: 100
# Categories (4, interval[float64]): [(0.0, 25.0] < (25.0, 50.0] < (50.0, 75.0]
# < (75.0, 100.0]]
 
value = pd.value_counts(value).sort_index() # 进行统计计数,每个区间又多少个数
# (0.0, 25.0]      32
# (50.0, 75.0]     28
# (25.0, 50.0]     22
# (75.0, 100.0]    18

x_value = [ f'{round(i.left,2)}-{round(i.right,2)}' for i in value.index ]
# ['0.0-25.0', '25.0-50.0', '50.0-75.0', '75.0-100.0']

value= value.tolist()  # 按索引进行排序(为了x轴,从大到小的关系,不然50-75这个区间排第二,value_counts默认降序排列导致),转换成列表,在pyecharts 只支持python的基本数据类型
# (0.0, 25.0]      21
# (25.0, 50.0]     28
# (50.0, 75.0]     20
# (75.0, 100.0]    31
# dtype: int64
bar = charts.Bar()
 
bar.add_xaxis(x_value )
bar.add_yaxis('区间数量',value)
 
bar.set_global_opts(
    xaxis_opts=opts.AxisOpts(
        name='bin值'
    ),
    yaxis_opts=opts.AxisOpts(
        name = '数量值'
    )
)
 
bar.render_notebook()

小小代码不成敬意。

有用就收藏吧。

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

源源佩奇

一起进步,提高自己。

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

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

打赏作者

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

抵扣说明:

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

余额充值