在Tableau的Documentation当中, 几乎没有怎么提及过这个特性, 但是对于Container来说, 它的一些选项只有在特定情况下才能出现, 如果你需要使用这些选项, 那么你必须了解这个特性.

Edit/Fix Width and Height 编辑/固定 高度和宽度 选项

当我们选中一个Container, 然后点击右键的时候, 就会弹出这个Container可以选择的菜单, 而这个菜单里有时候出现Edit Height的选项, 有的时候会出现Edit Width的选项. 有时候两个选项都没有, 这种不稳定出现的选项会让刚开始学习Tableau的你非常费解, 想要找到这些选项但是他们压根就不存在.

这种区别主要是因为Container除了我们之前提过的Tiled和Floating, Horizontal和Vertical之外, Container还存在第三类属性, 叫做内层和外层Container.

不管是什么container, 只要它的外边还有一层container那它就是一个内层container. 而一个内层container的可选选项是由它的外层Container决定的.

最外层的Container是不能调节高度和宽度的

如果一个内层container的外层是一个Horizontal Container, 那你只能调节或者固定这个内层container的宽度:Width

如果一个内层container的外层是一个Vertical Container, 那你只能调节或者固定这个内容container的高度: Height

Distribute Contents Evenly 平均分布内容

在一个外层Container中, Distribute Contents Evenly是一个非常重要的选项, 它能够让你每一个内层Container的大小一模一样.


在左侧的这个截图里, Distribute Contents Evenly就使用了非常多次.

在最外层, 两个黑色框内, 这两个大Container的尺寸完全相等, 这就是一次

在每一个黑框内部, KPI的大小又都是一样的, Distribute Contents Evenly.

在右侧的Filters下边, 我们可以看到三个Filter也是同样大小.

可以说Distribute Contents Only无处不在

Distribute Contents Evenly VS Fix Height

这里的知识只有一句话, 如果你在外层Container选择了Distribute Contents Only, 你就无法再在内层Container当中选择Edit或者是Fix Height or Width了. 原因也显而易见, 如果你能更改的话, 那里边每个内层container的大小就没法保证一样大了.

什么时候需要Edit Width/Height?

既然我们讲到这了, 就要把这个概念讲透. 前边我们看到了Distribute Contents Evenly的效果, 那么什么时候需要我们手动编辑一个Container的高度和宽度呢?

这个答案其实远在天边, 近在眼前. 我们接下来再分析一下我们一直作为案例的这个dashboard. 我现在给每一个worksheet外边添加了一个border. 你有没有发现左一和左二这两个之间的区别.

在左二当中, 我选择了distribute contents evenly 然后你可以看到上下两个图表的大小一样, 而其他所有的KPI都是上小下大. 那么如何保持上边都同样小, 下边都同样大就需要使用Edit Height来实现.

如果我们把每一个上边的柱状图的高度都设定为100, 那么Tableau就会根据整个Container的高度来自动调整下边折线图的高度. 这样不仅所有上边柱状图的高度一致了, 下边的折线图高度也一致了

如何快速选中外层Container?

每一个Container在你被选中之后, 都会出现这样的一个边框. 在这个边框的最上边, 有一个像手提的拉手一样的标志.

当你点击这个标志的时候, 鼠标就会出现一个十字的箭头, 代表你可以移动这个container.

但是它还有另一个作用, 那就是如果这个Container有一个外层Container, 当你左键双击这个提手, 你就可以快速的选中外层Container.


删除内层Container会导致外层Container的消失

这是一个有时候让你非常头疼的问题, 我先用一个动图来展示这个问题. 当我依次删除Object 1 和Object 2之后, 我们的整个Vertical Container也被删除了.

有的时候你只是想把当前Container里的内容都删掉, 然后重新添加新的内容. 但是这个最后一个内层container的删除会导致外层container消失的特点就需要你在删除内容时必须特别谨慎.

在删除最后一个Object之前, 先把你想要替换的内容先加上去.

如果没有要替换的内容, 先养成一个习惯, 往这个Container里先加入一个Text Object. 把这个Container撑住, 然后再加别的东西.


Container的自动填充属性

Vertical/Horizontal Container有一个和其他Object很不一样的特性就是这两种Contianer作为内层的时候, 会自动填充剩余的空间, 而其他Object比如Text就不会. 在下面的动图里, 我所添加的前两个Text Object 都没有把整个空间占满, 但是我一添加Vertical Container之后, 这个Container就占据了剩下的整个空间

What’s Next

我会在后边Visual Best Practice 视觉分割的部分将一下如何通过Edit Height来创建一个divider以及Edit Height的其他用途.