array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Tableau图表 • 仪表板2 - 爱码网

仪表盘图表2

数据可视化中,仪表盘图表有着多种类型,比如下面这种类似汽车仪表盘的图表,主要通过指针来指示数据位置,具体制作方法在这里:我是传送门

Tableau图表 • 仪表板2

还有一种仪表盘如下所示,主要通过颜色填充来指示数据位置。

Tableau图表 • 仪表板2

上面的仪表盘看起来像是半个圆环图,与汽车仪表盘类似,它的起点也在9点位置,终点在3点位置。但在创建方法上,两个图表有所区别,汽车仪表盘主要通过函数来计算指针的角度,而填充仪表盘则需要通过对圆形进行切片来实现填充效果。

基本思路

制作思路上,填充仪表盘将圆形分成五个切片,通过控制五个切片的显示范围实现填充效果,如下所示:

Tableau图表 • 仪表板2

**切片1:**从0点位置开始,在0点至3点之间任一位置结束的可变大小切片。如果显示的值大于50%,则该切片将对超过50%的数值部分进行填充,如果显示的值小于等于50%,该切片值为0,变为不可见。

**切片2:**位于切片1之后、并结束在3点位置的可变大小切片。如果显示的值小于100%,则该切片显示为浅灰色(自定义),表示与100%的差距部分。

**切片3:**从3点至9点的部分,该切片为隐藏切片,始终与背景色相同,从而实现不可见效果,并使图表显示为半甜甜圈。

**切片4:**从9点位置开始,在9点至12点之间任一位置结束的可变大小切片。此切片用于显示0至50%之内的值。

**切片5:**位于切片4之后、结束在0点位置的可变大小切片。如果显示的值小于50%,则该切片显示为浅灰色(自定义),表示与50%的差距部分。

计算字段

根据制图思路,需要对五个切片分别创建对应的计算字段。这里以tableau自带的超市示例数据集为例,创建子类别销售额的填充仪表盘。

首先,创建销售额%计算字段,用于将子类别销售额标准化。为了简化计算,这里的分母直接使用子类别最大销售额,即1934449

SUM([销售额])/1934449

然后,再对五个切片分别创建计算字段。

1.切片1计算字段:

IF [销售额%] > 0.5 THEN [销售额%]-0.5 ELSE 0 END

2.切片2计算字段:

IF [销售额%] > 0.5 THEN 1-[销售额%] ELSE 0.5 END

3.切片3计算字段:

1

4.切片4计算字段:

IF [销售额%] < 0.5 THEN [销售额%] ELSE 0.5 END

5.切片5计算字段:

IF [销售额%] < 0.5 THEN 0.5-[切片4] ELSE 0 END

视图创建

完成计算字段创建后,就可以开始创建填充仪表盘视图。

1.创建饼图

  • 筛选器
    • 将“度量名称”、“子类别”字段拖放到筛选器
    • 将“子类别”筛选器显示出来,并设置为“单值(列表)”
  • 标记卡
    • 将“标记”卡的视图类型设置为“饼图”
    • 将“度量名称”拖放到“标记”卡的“颜色”
    • 将“度量值”拖放到“标记”卡的“角度”
  • 度量值
    • 将“度量值”内容仅保留“切片1”至“切片5”五个计算字段
    • 将“切片3”的聚合方式设置为“最小值”

完成以上操作后,创建的饼图如下所示:

Tableau图表 • 仪表板2

2.饼图格式化

上面创建的饼图,虽然数据显示方式基本达到了预期目的,但要显示为半圆环形状,则还需要对该饼图进一步格式化。

首先,将“切片1”和“切片4”的颜色设置为蓝色,或者其他颜色,保持一致即可,同时将“切片2”和“切片5”的颜色设置为灰色,所得图形如下所示:

Tableau图表 • 仪表板2

然后,再将“切片3”的颜色设置为背景色。这里的背景色为白色,因此,只需将“切片3”也设置为白色,即可实现隐藏效果。但这里要注意的是,tableau的图例中,自带颜色里并没有白色可供选择,因此需要创建自定义调色板,将白色添加进去。

这里添加白色的方法如下:

1.找到文档\我的 Tableau 存储库中的Preferences.tps文件

Tableau图表 • 仪表板2

2.用记事本打开Preferences.tps文件,在preferences标记之间添加以下代码,其中#FFFFFF表示白色。

#FFFFFF

Tableau图表 • 仪表板2

3.保存并关闭Preferences.tps文件,再重新打开tableau,即可在图例的颜色编辑中,找到刚才添加的“My Palette”调色板,并完成“切片3”的颜色设置

Tableau图表 • 仪表板2

格式化后的饼图效果如下:

Tableau图表 • 仪表板2

3.添加数字

上面的图形实现了填充仪表盘的基本样式,但若要直观显示数值大小,还需要将数字添加上去。这里主要通过双轴图来实现。

  • 在“行”功能区创建两个MIN(1)辅助函数进行占位

Tableau图表 • 仪表板2

  • 对第二个视图进行设置

    • “标记”卡
      • 将“标记”卡的视图类型设置为“圆”
      • 仅保留“销售额%”计算字段,并设置为“标签”,调整标签大小、位置及数字格式
      • 将“颜色”设为白色
      • 适当调整圆的“大小”
    • “行”功能区
      • 将第二个视图设为“双轴图”

    最终得到的填充仪表盘效果如下:

    Tableau图表 • 仪表板2
    (全文完)
    Tableau图表 • 仪表板2

相关文章: