Plotly Express直方图自定义分箱大小的实现方法
Plotly Express直方图自定义分箱大小的实现方法
嗨,我来帮你搞定Plotly直方图自定义分箱的问题!我懂你说的那种烦恼——默认分箱总是不符合自己想要的区间,其实Plotly Express完全支持自定义分箱设置,方法比你想象的简单~
首先先还原你的原始数据和默认绘图代码:
import pandas as pd import plotly.express as px data = {'product_name': ['link', 'zelda', 'impa', 'rauru', 'saria', 'darunia'], 'variance': [0.95, -0.85, 0.3, 0.2, 0.03, 0.02]} df = pd.DataFrame(data) # 默认生成的直方图 px.histogram(df, 'variance')
要实现你想要的5个自定义起止的分箱,只需要在px.histogram里加上bins参数,直接传入你定义好的分箱边界列表就可以了。比如假设你想要的分箱边界是[-1, -0.6, -0.2, 0.2, 0.6, 1](对应5个区间),代码修改如下:
# 自定义分箱边界:5个分箱需要6个边界值,相邻值组成一个区间 custom_bins = [-1, -0.6, -0.2, 0.2, 0.6, 1] fig = px.histogram(df, x='variance', bins=custom_bins) fig.show()
补充说明:
bins参数接受一个数值列表,列表元素的数量比分箱数多1,每个相邻元素组成一个分箱区间,完全满足你自定义起止的需求- 如果只是想要固定数量的等宽分箱,也可以用
bin_range配合nbins,比如px.histogram(df, x='variance', bin_range=[-1, 1], nbins=5),不过这种方式是等宽分箱,如果你需要不等宽的自定义区间,还是用bins直接指定边界更灵活
这样就能生成和你目标图一致的自定义分箱直方图啦!
备注:内容来源于stack exchange,提问作者Tyler Moore
相关产品推荐
相关产品推荐

