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

两组二分类变量的频率条形图制作咨询(附样本数据)

实现不同组别Choice分布频率的条形图

嘿,针对你给出的样本数据,咱们可以用Python的pandas+seaborn快速画出想要的条形图,直观展示Stress组和Control组里Choice(0/1)的分布频率。下面是完整的实现步骤:

步骤1:导入所需库

先把数据分析和可视化需要的工具库导入进来:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

步骤2:创建样本数据

把你提供的样本数据转换成pandas的DataFrame格式,方便后续统计和绘图:

# 构造样本数据集
data = {
    'Participant': [1, 2, 3, 4, 5, 6],
    'Group': ['Control', 'Control', 'Control', 'Stress', 'Stress', 'Stress'],
    'Choice': [0, 0, 0, 1, 1, 1]
}
df = pd.DataFrame(data)

步骤3:绘制分布频率条形图

用seaborn的countplot函数,它会自动统计每个组内不同Choice的数量(因为每组样本量固定,数量直接对应频率):

# 设置绘图风格,让图表更美观
sns.set_style("whitegrid")

# 创建画布,设置尺寸
plt.figure(figsize=(8, 5))

# 绘制条形图:x轴为组别,用hue区分Choice取值,自动统计每组内的数量
ax = sns.countplot(x='Group', hue='Choice', data=df, palette='Set2')

# 添加图表标题和坐标轴标签
plt.title('Choice Distribution by Group', fontsize=14)
plt.xlabel('Group', fontsize=12)
plt.ylabel('Frequency', fontsize=12)

# 给每个条形添加具体数值标签,方便读取
for p in ax.patches:
    height = p.get_height()
    ax.text(p.get_x() + p.get_width()/2., height,
            f'{height}',
            ha='center', va='bottom')

# 显示最终图表
plt.show()

结果说明

运行这段代码后,你会得到一幅清晰的条形图:

  • Control组只有Choice=0的条形,高度为3(对应3个样本全部选择0)
  • Stress组只有Choice=1的条形,高度为3(对应3个样本全部选择1)
    如果后续你的样本数据出现混合分布(比如某组同时存在0和1的选择),这套代码也能自动统计并展示各自的频率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:17:42