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

基于性别分组的问卷答案频次可视化实现问询

基于性别分组的问卷答案频次可视化实现方案

嘿,太懂你这种找分类数据可视化例子碰壁的郁闷了!我之前也踩过类似的坑,其实针对你这个需求,不管用Seaborn还是直接用Pandas+Matplotlib都能轻松搞定簇状或堆叠柱状图,下面给你一步步拆解实现:

第一步:完整数据准备(你已经写好的,我整合到完整代码里啦)

首先把你的原始数据和依赖库导入写全,方便直接运行:

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

# 你的问卷数据
answers = ['A', 'B', 'A', 'B', 'A', 'A', 'B', 'B', 'B', 'A', 'C', 'B', 'A', 'C']
genders = ['M', 'M', 'F', 'M', 'F', 'M', 'F', 'M', 'M', 'F', 'M', 'M', 'F', 'M']
df = pd.DataFrame({'Answer': answers, 'Gender': genders})

方案一:簇状柱状图(两种实现方式)

簇状图最适合对比不同性别下同一答案的频次差异,有两种简单的实现方式:

方式1:Pandas 交叉表统计+直接绘图

核心是先用pd.crosstab统计每个性别下各答案的频次,然后直接调用plot方法:

# 1. 统计每个性别对应各答案的频次
freq_table = pd.crosstab(df['Gender'], df['Answer'])

# 2. 绘制簇状柱状图
freq_table.plot(kind='bar', figsize=(8, 5), rot=0, colormap='Set2')
plt.title('问卷答案频次(按性别分组·簇状)')
plt.xlabel('性别')
plt.ylabel('频次')
plt.legend(title='答案选项')
plt.tight_layout()  # 自动调整布局避免标签被截断
plt.show()

方式2:Seaborn countplot 实现

如果你更习惯用Seaborn,直接用countplot的hue参数就能实现分组,不用手动统计频次:

plt.figure(figsize=(8, 5))
# x轴设为性别,hue按答案分组
sns.countplot(data=df, x='Gender', hue='Answer', palette='Set2')
plt.title('问卷答案频次(按性别分组·簇状)')
plt.xlabel('性别')
plt.ylabel('频次')
plt.legend(title='答案选项')
plt.tight_layout()
plt.show()

方案二:堆叠柱状图实现

要是想展示每个性别下各答案的占比结构,堆叠柱状图就很合适,同样基于之前统计的频次表:

# 绘制堆叠柱状图
freq_table.plot(kind='bar', stacked=True, figsize=(8, 5), rot=0, colormap='Set2')
plt.title('问卷答案频次(按性别分组·堆叠)')
plt.xlabel('性别')
plt.ylabel('频次')
# 把图例放到图外面,避免挡住柱子
plt.legend(title='答案选项', bbox_to_anchor=(1.05, 1), loc='upper left')
plt.tight_layout()
plt.show()

一些额外小技巧

  • 要是想把频次换成百分比占比(比如每个性别下各答案的占比),可以先对频次表做归一化:
    # 计算每个性别下各答案的百分比
    freq_pct = freq_table.div(freq_table.sum(axis=1), axis=0) * 100
    # 然后用同样的plot方法绘制即可,记得把ylabel改成"占比(%)"
    
  • 调整配色的话,Seaborn可以用palette参数选内置配色,Pandas plot可以用colormap参数
  • 要是想给柱子加上数值标签(把频次数字标在柱子上),可以循环遍历每个柱子添加文本,这个需要的话也可以再给你补充~

这样应该就能完美满足你的需求啦,其实分类数据可视化的核心就是先把频次统计清楚,剩下的绘图步骤和常规柱状图没差哦😉

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 03:10:08