代码之家  ›  专栏  ›  技术社区  ›  avibrun

列与列之和的百分比饼图

  •  0
  • avibrun  · 技术社区  · 7 年前

    对于以下数据集,我想创建一个Qlik意义上的饼图。该数据集表示飞机检查范围内的维修以及这些维修的任务编号。我想看看任务的饼图,看看哪些任务发生得最多(例如:任务1:20%,任务2:33%,等等)。然而,由于我不熟悉Qlik Sense,我不知道如何使用多列中的值获取饼图。完整的数据集大约有130个任务。

    Aircraft    Check   Date        Task1   Task2   Task3   Task4   Task5
    AAB         P1      01-01-10    4       0       4       3       0
    AAC         P1      02-01-10    5       0       3       1       1
    AAD         P2      03-01-10    5       1       1       0       1
    AAE         P1      05-01-10    2       0       2       2       1
    AAC         P3      05-01-10    2       0       5       0       1
    AAB         P4      06-01-10    0       0       3       1       2
    AAE         P2      08-01-10    3       0       0       4       1
    AAD         P3      09-01-10    5       0       4       1       4
    AAD         P4      10-01-10    4       2       0       4       4
    

    我认为主要的问题是饼图的尺寸,因为它由多列组成,但我不确定。 有人知道如何解决这样的问题吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   x3ja    7 年前

    一种解决方案是 unpivot / crosstable 数据-这将创建一个更像以下内容的表:

    Aircraft    Check   Date        Task   Value
    AAB         P1      01-01-10    Task1  4
    AAB         P1      01-01-10    Task2  0
    AAB         P1      01-01-10    Task3  4
    AAB         P1      01-01-10    Task4  3
    AAB         P1      01-01-10    Task5  0
    AAC         P1      02-01-10    Task1  5
    

    然后可以将维度作为任务进行求和(值)。

    在脚本编辑器中,假设您的表被称为“Checks”,可以通过以下方式完成:

    Checks_new:
    crosstable(Task,Value,3)
    Load * resident Checks;
    drop table Checks;
    rename table Checks_new to Checks;
    

    还有一些其他建议

    • 如果可能有130个分段,最好不要做饼图!
    • 如果不需要零值,并且当您从每架飞机1行/检查/天到每架飞机1行/检查/天/任务时,数据集变大,则可能会排除零值