You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Plotly中绘制气泡大小随列交集出现频次变化的气泡图

实现方案

核心逻辑为先统计所有待分析列的取值组合的出现频次,将频次字段作为气泡大小的映射参数传入Plotly散点图接口即可,完整可运行代码如下:

import pandas as pd
import plotly.express as px    

# 原始示例数据
data_temp = pd.DataFrame({
    'bool_col_1': [1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1], 
    'bool_col_2': [1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1]
})

# 统计每个取值组合的出现频次,支持任意数量分类列的统计
count_df = data_temp.value_counts().reset_index(name='occur_count')
# 可选:计算当前组合在全量数据中的占比
count_df['occur_ratio'] = count_df['occur_count'] / count_df['occur_count'].sum()

# 绘制气泡图
fig = px.scatter(
    count_df,
    x='bool_col_1',
    y='bool_col_2',
    size='occur_count',
    size_max=60, # 调整最大气泡尺寸避免显示异常
    hover_data=['occur_count', 'occur_ratio'] # 悬浮展示频次和占比信息
)

# 可选:优化图表显示样式
fig.update_layout(
    xaxis_title='bool_col_1 取值',
    yaxis_title='bool_col_2 取值',
    title='多列取值交集频次气泡图'
)

fig.show()

扩展说明

如果需要分析超过2列的交集场景,可将多列取值拼接为单个分类标签作为x轴,或使用Plotly的分面(facet)功能拆分展示多维度分组即可,逻辑和上述代码一致,仅需调整坐标轴映射参数。
该方案天然支持所有分类类型的列,无需针对非布尔列做额外适配。


内容的提问来源于stack exchange,提问作者artemivchatov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:15:00