举个栗子!Tableau 技巧(262):制作渐变色梯度面积图

发布于: 2023-07-28

炒股的数据粉们,如果在谷歌上搜索过公司股票的名称,会看到显示股票历史表现的趋势线图(如下“特斯拉股票”的走势图)。

新的需求来了,如何在 Tableau 中构建这样一个渐变色的趋势图(梯度面积图)呢?

梯度面积图可用于呈现随时间变化的任何度量,前提是所有值都位于水平轴的同一侧(全部为正或全部为负)。例如,每周销售趋势。相反,像随时间变化的利润这样的指标可能既有正值也有负值,不适用该图表哦~

具体如何实现呢?今天的栗子,一睹为快!


期《举个栗子》,我们要给大家分享的 Tableau 技巧是:制作渐变色的梯度面积图。

为方便学习,栗子使用 Tableau 自带的“示例-超市”数据源,掌握栗子方法后,数据粉可尝试使用其他数据源实现。另外,需提前准备 .png 格式渐变色背景图片,建议上深下浅。

具体步骤如下:

1.创建计算字段

打开 Tableau Desktop,连接“示例-超市”数据源,新建工作表。首先,需要为 X 轴的时间字段创建 4 个计算字段:

➤ 创建计算字段:1.0周度,键入函数:
WEEK([订单日期])

➤ 创建计算字段:1.1最小日期,键入函数:
WINDOW_MIN(MIN([1.0周度]))

➤ 创建计算字段:1.2最大日期,键入函数:
WINDOW_MAX(MAX([1.0周度]))

➤ 创建计算字段:1.3标准化日期,键入函数:
(MIN([1.0周度]) - [1.1最小日期]) / ([1.2最大日期] - [1.1最小日期])

Tips:

- 本步骤仅动态轴值需要执行上述步骤。如果你的日期轴是固定的,你可以跳过上面的步骤,直接在定位背景图片的时候输入开始和结束日期;

- 另外,如果频率是每月一次,则可以分别将起点和终点输入为 1 和 12,而无需对轴进行标准化在 [0,1] 范围内连续测量。

接着,再为 Y 轴的销售额度量字段创建 4 个计算字段:

➤ 创建计算字段:1.4最小销售额,键入函数:
WINDOW_MIN(SUM([销售额]))

➤ 创建计算字段:1.5最大销售额,键入函数:
WINDOW_MAX(SUM([销售额]))

➤ 创建计算字段:1.6标准化销售额,键入函数:
(SUM([销售额]) - [1.4最小销售额]) / ([1.5最大销售额] - [1.4最小销售额])

➤ 创建计算字段:1.7逆标准化销售额,键入函数:

(1 - [1.6标准化销售额])

2.创建视图

右键单击计算字段“1.0周度”,将其转换为:维度;然后将该字段拖到“标记”卡的“详细信息”中。

分别将计算字段“1.6标准化销售额”和“1.3标准化日期”拖放至行和列,并分别右键单击这两个胶囊,下拉菜单将其“计算依据”均改为:1.0周度。

将“标记”卡的标记类型修改为:线,生成如下所示 X 轴和 Y 轴都在 0 至 1 之间的趋势折线图。

将计算字段“1.7逆标准化销售额”拖放至行,放在“1.6标准化销售额”胶囊的右侧;再右键该胶囊,下拉菜单将其“计算依据”修改为:1.0周度。

分别右键单击“1.7逆标准化销售额”和“1.6标准化销售额”两个 Y 轴,下拉菜单选择:编辑轴。在弹出对话框中,将轴的范围都固定为 -0.05 到 1.05(确保两个Y轴对齐)。另外,编辑“1.7逆标准化销售额”轴时,将“比例”选为:倒序。

将“1.7逆标准化销售额”“标记”卡的标记类型改为:区域;再将区域面积图的颜色改为工作表的背景颜色(示例为白色);将颜色不透明度设置为:100%。

右键单击行上的“1.7逆标准化销售额”胶囊,下拉菜单选择:双轴。注意:此时,如果 Tableau 将度量名称添加到“标记”卡的颜色中,请在“全部”“标记”卡中将其拖离走。

3.添加图表的背景图片

单击顶部菜单栏“地图”,下拉菜单选择:背景图像-示例-超市,弹窗中选择:添加图像。

在弹出的功能对话框中,在“图像”选项卡下添加绿色渐变图像的位置;在“X 字段”下拉菜单中选择“1.3标准化日期”字段,将左边设置为:0,将右边设置为:1;在“Y 字段”下拉列表中选择“1.6标准化销售额”字段。将下设置为 0,将上设置为 1。

将“销售额”字段拖放至“1.6标准化销售额”“标记”卡的标签中。再单击“标签”,在弹窗中,将“标记标签”选为:最小/最大。

将字段“订单日期”拖放至“筛选器”卡,弹窗中选择:年-2021。右键单击“1.6标准化销售额”轴,下拉菜单选择:添加参考线,弹窗中如下图设置。

右键单击“1.6标准化销售额”轴,下拉菜单取消勾选:显示标题。然后,如下图去掉两个轴的行/列分隔线和零线。

4.实现渐变动态效果

接下来,我们需要让渐变的颜色根据度量值发生变化(销售差异计算,选定的子类别绿色渐变表示正方差,红色表示负方差),需要创建 4 个计算字段。

先把“子类别”拖放至“筛选器”卡,弹窗中选择:使用全部。再分别右键单击该胶囊,下拉菜单选择:添加上下文、显示筛选器。并在视图右侧,将该筛选器改为:单值(列表)。

再创建4个计算字段:

➤ 创建计算字段:21年销售额,键入函数:

IF YEAR([订单日期]) = 2021 THEN [销售额] END

➤ 创建计算字段:20年销售额,键入函数:

IF YEAR([订单日期]) = 2020 THEN [销售额] END

➤ 创建计算字段:1.8同比销售额,键入函数:

(SUM([21年销售额]) - SUM([20年销售额])) / SUM([20年销售额])

➤ 创建计算字段:1.9背景颜色切换,键入函数:

{ FIXED [子类别]:[1.8同比销售额]} >= 0

将计算字段“1.9背景颜色切换”拖放至“1.6标准化销售额”“标记”卡的颜色中。为伪分配红色,为真分配绿色。

编辑之前添加的绿色渐变图像:单击对话框中的“选项”选项卡。单击“添加”并从字段列表中选择“1.9背景颜色切换”计算字段。将该值设置为真。

接下来,我们将添加红色渐变作为背景图像,其输入与绿色渐变完全相同。然后切换到“选项”选项卡;单击“添加”并从字段列表中选择“1.9背景颜色切换”计算字段,将该值设置为伪。

如此,就完成了我们想要的渐变梯度面积图,通过右侧子类别筛选器,可以查看每一种产品的销售情况啦~

今天的 Tableau 技巧,你 Get 到了吗?