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

Qlik Sense中如何实现单字段对应单柱的100%堆叠条形图?

在Qlik Sense中实现按字段分组的100%堆叠条形图

完全可以在Qlik Sense里搞定这个需求!核心是先把你的宽表数据转成适合堆叠图的长表结构,之后就能轻松实现每个问题字段对应一个条形的100%堆叠效果。下面是具体步骤:

第一步:转置数据(脚本层处理)

你当前的数据是宽表格式(每个问题是单独的列),而Qlik的堆叠图需要长表——每行对应一个受访者对单个问题的回答。咱们可以通过脚本转置数据:

// 加载原始数据
Survey1:
LOAD * inline [
Respondent, AnswerToQuestion1, AnswerToQuestion2
resp1, 1, 1
resp2, 1, 2
resp3, 2, 1
resp4, 2, 1
resp5, 2, 3
resp6, 2, 1
resp7, 2, 1
resp8, 3, 2
resp9, 3, 2
];

// 转置第一个问题的数据
TransposedSurvey:
LOAD 
    Respondent,
    'Question 1' as Question,  // 给问题命名,方便前端识别
    AnswerToQuestion1 as Answer
Resident Survey1;

// 追加第二个问题的数据
Concatenate(TransposedSurvey)
LOAD 
    Respondent,
    'Question 2' as Question,
    AnswerToQuestion2 as Answer
Resident Survey1;

// 可选:删除原始宽表,节省内存
Drop Table Survey1;

转置后的数据结构会变成每行对应一个受访者的单条问题回答,这样就适配了Qlik可视化的维度-度量逻辑。

第二步:创建100%堆叠条形图

数据准备好后,就可以在Qlik Sense前端构建图表了:

  • 新建一个条形图
  • 维度选择Question(这样每个问题会对应一个独立的条形)
  • 度量输入以下表达式,计算每个Answer在对应问题中的占比:
    Count(Respondent) / Count(TOTAL <Question> Respondent)
    
    记得把度量的格式设置为百分比(在度量属性里调整数字格式)
  • 把Answer字段拖到颜色区域,这样每个堆叠段会对应不同的Answer值
  • 最后在图表的样式选项卡中,把条形图类型切换为100%堆叠条形图

额外提示

如果不想修改脚本,也可以在前端用集合分析或者aggr函数实现,但转置脚本是最直观且性能最优的方式。另外要确保Answer字段被设置为离散维度(而不是连续),这样颜色分组才会正确显示每个Answer的分段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:26:36