以下部分是基于《Fundamentals of Data Visualization》学习笔记,要是有兴趣的话,可以直接看原版书籍: https://serialmentor.com/dataviz/
在许多情况下,我们对某些数字的大小感兴趣。 例如,我们可能希望可视化不同品牌汽车的总销量,或生活在不同城市的总人数,或进行不同运动的奥林匹克运动员的年龄。 在所有这些情况下,我们都有一组类别(例如,汽车,城市或运动品牌)以及每个类别的定量值。我们讲这种的数据类型的可视化称为数量可视化。对于这种的可视化,最基本的就是条形图以及各种变体的条形图,另外还有热图。
条形图
为了说明条形图,我们使用2017年圣诞周末的电影票房来举例子。在这个数据当中,包含了每一个电影的名称以及他们的总票房。
image对于这样的数据,我们使用垂直的条形图来进行表示。对于每一个电影,我们绘制一个从0到具体数值的一个矩形(条形),利用这个矩形块来代表某一个数值。
image对于垂直的条形图而言,X轴对于每一个条形的标注占据了很大的空间。这样就导致不同的条之间会有很大的空白。为了解决的这个问题,很多人会把标注进行旋转。这样会减少之间的空间。但是不是很建议这么做,因为旋转的标注对于阅读而言是很麻烦的,另外的话,根据作者的经验,如果标签太长水平无法放下的话,旋转的效果也不是很好。
image对于这种长标签,最好的解决办法还是把X轴和Y轴调换。形成一个水平的条形图。
image另外无论是垂直还是水平的条形图,都需要注意排列的顺序。我们在使用绘图软件进行绘图的时候,很多绘图软件的默认排序是基于标注的字母顺序来进行排序的。这个的顺序的话,虽然可行,但是会看着很不好看。所以如果是对于如果没有一定顺序的数据的话,最好还是按照具体数值进行降序或者升序。例如👆的图
image以上的规则只是适用于没有自然排序的情况下,如果是有自然排序的话,一定要按照自然排序来进行排序的。例如,下图显示了按年龄段划分的美国年收入中位数。在这种情况下,应按年龄增加的顺序排列。如果这个时候,对年龄组按条形高度进行排序是没有意义的。
image分组和堆叠的条形图
在上面的例子当中,我们遇到的都是一个分类变量与其相关的变量变化。但是,我们经常也会同时对两个分类变量的数据变化感兴趣。例如,美国人口普查局提供了按年龄和种族细分的收入中位数。这个时候,我们可以使用分组条形图来进行可视化。在分组的条形图当中,我们把其中一个变量当作X轴标注,然后利用另外一个分类变量来绘制多个条形。
image对于分组的条形图,由于分组太多就容易导致混淆。这类的可视化,都是基于我们想要讲述的内容来进行调整的。例如我们是不同年龄段的种族之间的差异感兴趣的话,可以使用👆的图。如果是我们对不同种族之间的整体收入变化的话,那可以使用下面的图。
image上面的两种分组可视化,我们是通过把两个分类变量映射到X轴和颜色标度上来实现的。还有另外一种方式是利用一个分类变量来进行分面进而绘制多个条形图。两种可视化方式都对,只不过分娩的好处是我们不需要来花费额外的精力去解读具体的分组的变量是什么了。
image相较于上面并排的条形图,还有一种分组的条形图是堆叠在一起的。这种堆叠的条形图对于想要说明整体变化的时候是有用的。
imagePS:👆显示的条形图没有明确的y轴。相反,在每个条形中标注了其所代表的实际数值。每当一个图只显示少量数值时,将实际数字添加到图中是有意义的。这实质上增加了绘图传达的信息量,而没有增加太多视觉噪声,并且消除了对显式y轴的需要。
后记
上面我们介绍了基本的条形的类型。但是对于条形图而言还有两个弊端:(i)如果我们想要可视化的数据整体之间的差异没那么大,那应该怎么展示结果呢?(ii)对于分组的条形图,如果分组太多,要怎么办呢?针对这两个问题,我们有两者候选的图形可以进行替代。这个我们下期再说
网友评论