如何在Qlik Sense中建立点象限图?

本文将向您展示如何使用Qlik Sense构建非常不同类型的图表。Qlik广泛的图表库的一个非常聪明的补充,它说明了当我们用右眼观看标准图表时,如何提供更多标准图表。 

如何逐步建立象限点图?

您是否曾经对Qlik Sense图形对象感到限制? 有时您或许想要一些与众不同,令人惊讶或引人注目的东西。而面对这种情况,开箱即用的功能就很重要了。

这是一个“圆点象限”图表,接下来我们将介绍如何在Qlik中实现类似目标。

如何在Qlik Sense中建立点象限图?_第1张图片

在本文中,我们不会讨论何时或为什么使用此可视化,我们只会专注于有关如何构建它的更详细指南,并且更一般地讲,如何在Qlik中运用基本图形。

建立网格

首先,需要创建一个包含所有组成图表的点的网格,将使用散点图创建21 x 21的网格。请注意,由于需要界定每个扇区,因此是生成21 X 21的网格而不是20 x 20的网格。

生成脚本中的每个点

TMP:
LOAD RECNO() AS X AUTOGENERATE 21;
JOIN LOAD RECNO() AS Y AUTOGENERATE 21;

准备数据

DATA :
LOAD X &'|'& Y AS POINT,
X+Y AS TOTAL,
X,Y
RESIDENT TMP;
DROP TABLE TMP;

使用散点图并使用维度(称为点)和X Y作为度量来填充维度来创建点象限图。将两者的范围都设置为22的最大值,并且有网格。

如何在Qlik Sense中建立点象限图?_第2张图片

创建三角形

首先是删除将四个部分分开的点,使用X和Y即可轻松完成。在图表中使用“按表达式”颜色将颜色设置为白色,以便它们从视图中消失。

IF(X=Y OR X+Y=22, RGB(255,255,255))

如何在Qlik Sense中建立点象限图?_第3张图片

要知道每个点属于哪个“三角形”,可以使用以下条件:

if(Total=22 or X=Y,'NONE',
 if(Total>=23 and Y>X,'TOP',
  if(Total<23 and Y>X,'LEFT',
   if(Total>=23 and Y 
  

使用这些条件,您可以在脚本中生成一个名为“ POSITION”的新字段,该字段稍后将帮助您定位点象限图的右四分之一。现在,您的加载脚本应类似于以下代码:

TMP:
LOAD RECNO() AS X AUTOGENERATE 21;
JOIN
LOAD RECNO() AS Y AUTOGENERATE 21;
DATA:
// // DEFINE TRIANGLE POSITION
LOAD X,Y,TOTAL,POINT,
IF(TOTAL=22 OR X=Y,'NONE',
IF(TOTAL>=23 AND Y>X,'TOP',
IF(TOTAL<23 AND Y>X,'LEFT',
IF(TOTAL>=23 AND Y 
  

一旦知道了每个点的位置,就该为每个象限着色了。您可以按表达式重复使用“颜色”字段中的“位置”字段:

if(Position='NONE',rgb(255,255,255),
 if(Position='TOP',rgb(231, 76, 60),
  if(Position='RIGHT',rgb(41, 128, 185),
   if(Position='BOT',rgb(230, 126, 34),
    if(Position='LEFT',rgb(22, 160, 133)
)))))

如何在Qlik Sense中建立点象限图?_第4张图片

在网格中显示KPI

在示例中,有四个指标和一个维度(年份),其中包含两个值。由于每个四分之一由100个点组成,是时候从中心点开始为它们分配一个从1到100的值了。这样,您将可以控制各部分的填充方式,它们从中心向外填充。

在加载脚本中,是时候创建一个名为“ NoPoint”的新字段了,如下所示:

Top:
load Position,X,Y,RowNo() as NoPointT Resident Data
Where Position ='TOP'
Order by Y asc;
Right:
load Position,X,Y,rowno() as NoPointR Resident Data
Where Position ='RIGHT'
Order by X asc;
Bot:
load Position,X,Y,RowNo() as NoPointB Resident Data
Where Position ='BOT'
Order by Y desc;
Left:
load Position,X,Y,rowno() as NoPointL Resident Data
Where Position ='LEFT'
Order by X desc;
All:
LOAD Position,X,Y,NoPointT as NoPoint Resident Top;
Concatenate(All)
LOAD Position,X,Y,NoPointR as NoPoint Resident Right;
Concatenate(All)
LOAD Position,X,Y,NoPointB as NoPoint Resident Bot;
Concatenate(All)
LOAD Position,X,Y,NoPointL as NoPoint Resident Left;
join(Data)
LOAD * resident All;
Drop tables All,Top,Right,Bot,Left;

最后,返回到图表颜色属性面板,并添加每个KPI,例如:

Position='TOP' and Sum({$}Percentage)*100>=NoPoint

您的色彩表达应该是这样的:

if(X+Y=22 or X=Y,'#ffffff',
 if(Position='TOP' and Sum({$}Percentage)*100>=NoPoint,'#e74c3c',
  if(Position='RIGHT' and Sum({$}Percentage)*100>=NoPoint,'#2980b9',
   if(Position='BOT', 
    if(Sum({$}Percentage)*100>=NoPoint,'#e67e22','#bdc3c7'),
     if(Position='LEFT', 
      if(Sum({$}Percentage)*100>=NoPoint,'#16a085','#bdc3c7')
,'#bdc3c7')
         )
        )
       )
      )

要完成图表,请记住在其中隐藏不需要的内容,X和Y以及Voila的标签和标题。


关于Qlik

Qlik的愿景是一个数据素养的世界,每个人都可以使用数据来改善决策并解决他们最具挑战性的问题。只有Qlik提供端到端的实时数据集成和分析解决方案,以帮助组织访问所有数据并将其转化为价值。慧都作为Qlik官方的中国合作伙伴,我们为Qlik的中国用户提供产品授权与实施、定制分析方案、技术培训等服务,旨在让中国企业的每个Qlik用户都能探索出数据的价值,让企业形成分析文化。

你可能感兴趣的:(qlik,BI)