折线图
什么是折线图?
折线图(又名线形图、线状图)通过从左到右连接的点段来展示数值的变化。水平轴描绘一个连续的进程,通常是时间,而垂直轴则报告该进程中对某个指标数值的记录。
上方的折线图展示了两种虚构货币在六个月内的汇率变化。随着时间从左向右推移,各点连接了每日的汇率。从线的整体斜率和垂直位置,我们可以读出3月至4月初,汇率从约0.75提升至0.78,随后逐渐下降至5月末和6月初的约0.765。
何时使用折线图
当你想要强调一个变量(绘制在垂直轴上)在第二个变量(绘制在水平轴上)的连续值中的变化时,你应该使用折线图。这种对变化模式的强调是通过线段从左到右一致地移动,并观察线的斜率向上或向下移动来实现的。
在水平轴上,你需要一个表示具有定期测量间隔的连续值的变量。非常常见的是,这个变量是时间的变量,每分钟、每小时、每天、每周或每月生成一个观测值。间隔大小或箱子的选择通常是分析师需要为数据做出的决策,而不是数据固有的特性。
在垂直轴上,你需要报告第二个数值变量在每个由水平轴变量定义的间隔内的点的值。通常,这将是每个箱子内事件的总和或平均值等统计摘要。
多条线也可以绘制在同一个折线图中,以比较不同序列的趋势。这种用法的一个常见场景是观察数据在不同子组中的分解情况。绘制多条线的能力也为折线图提供了一种特殊的应用场景,通常情况下我们可能不会选择这种图表。通常,我们会使用直方图 来描绘单个数值变量的频率分布。然而,由于在同一组坐标轴上绘制两个直方图比较复杂,折线图作为一种替代方案,可以很好地进行对比。用于描绘频率分布的折线图通常被称为频率多边形。
这个折线图显示,订阅者的行程次数远多于访客,但访客的平均行程时间更长。
数据结构示例
#### DATE | #### GUEST | #### SUBSCRIBERS |
---|---|---|
2019-05-01 | 19 | 103 |
2019-05-02 | 22 | 105 |
2019-05-03 | 20 | 98 |
2019-05-04 | 26 | 83 |
… | … | … |
要使用折线图,数据通常需要汇总到一个具有两列或多列的表格中。第一列中的值指示每条线绘制时水平轴上点的位置。每个后续列指示单条线上的点的垂直位置。
某些工具会从不同的数据格式创建折线图,无论绘制多少条线,都需要三个列。在这些情况下,列指定了水平值、垂直值,以及每行数据将被分配到哪条线上。
#### DATE | #### 用户类型 | #### TRIPS |
---|---|---|
2019-03-01 | 访客 | 23 |
2019-03-01 | 订阅者 | 102 |
2019-03-02 | 访客 | 24 |
2019-03-03 | 订阅者 | 77 |
… | … | … |
使用折线图的最佳实践
选择合适的测量间隔
创建折线图的一个重要方面是选择合适的间隔或分组大小。对于时间序列数据,测量间隔过大可能会导致数据趋势的走向难以快速显现,从而掩盖了有用的信号。反之,测量间隔过小则可能只会显示出噪声而非信号。
测试不同的间隔或根据你对所记录数据的领域知识,可以帮你确定合适的箱体大小。也可以使用多条线,一条线用于细粒度间隔,另一条线用于整体趋势,通过滚动窗口进行平均。
不要绘制太多线条
拥有强大的能力也意味着承担更大的责任,因此虽然技术上可以将许多线条放在一个折线图上,但建议在绘制的数据量上要谨慎。一个不错的经验法则是限制在五条或更少的线条,以免图表最终看起来像一团难以辨认的乱麻。然而,如果线条之间有足够的间隔,你仍然可以绘制所有想要追踪的数值。
如果你发现需要在单个轴上绘制过多线条而难以阅读,那么可以考虑将图表分割成小线图的网格。在这些图表中查看细节会更加困难,因此按某些重要特征(如平均值或最终值)对它们进行排序是一个好主意,这有助于突出重要信息。如果你使用的是允许交互式图表的工具,另一个选择是能够根据读者的需求突出显示单条线或淡化次要线条。
常见误用
严格使用零值基线
尽管垂直轴的零基线是条形图和直方图的要求,但对于折线图,你不需要包含零基线。回想一下,折线图的主要目标是强调值的变化,而不是值本身的大小。在零线没有意义或不实用的情况下,将垂直轴范围缩放到最能体现值变化的范围是完全可以的。
然而,在一种情况下,零基线仍然是必要的。当线图用于显示频率分布时,它相当于条形图和直方图的使用方式。因此,它将遵循相同的要求,需要包含一个零值基线作为线图高度的参考点。
未能识别点之间的不均匀间隙
当折线图在某些数据区间缺失信息时,如果折线不包含每个观测点的明显标记,记录中的空白可能会被解释为幽灵值。当要绘制的点不多时,尝试显示所有点而不仅仅是折线。如果包含点会混淆图表的可解释性,另一种替代方案是在折线中包含一个空白区域来显示缺失值的位置。
在点之间插值曲线
在标准的折线图中,每个点都用直线段依次连接,从第一个到最后一个。然而,可能会有一种美观上的诱惑,试图平滑地连接所有点,一次性拟合一条穿过所有点的曲线。你绝对应该抵制这种诱惑!如下的示例所示,尝试这种拟合方式肯定会扭曲数据趋势的感知。线的方向和陡峭程度应该表示数值的变化,因此曲线最终可能会暗示实际测量值之间存在额外的数据点,而这些点实际上并不存在。
使用具有误导性的双轴线
到目前为止,包含多条线的折线图示例中,每条线都属于同一个域,因此可以在同一个坐标轴上绘制。然而,没有任何限制要求每条线必须描绘相同单位的值。当一条折线图包含两个系列,每个系列描绘不同变量的汇总信息时,我们最终会得到一个双坐标轴图。
双轴图的问题在于它很容易被操纵以产生误导。根据每个轴的缩放方式,两条线之间的感知关系可能会改变。在下面的两个图中,每周试验次数和订阅数量都被绘制在双轴图中。每张图的数据完全相同,但由于每个变量的垂直缩放选择不同,变量之间的关系会发生变化。
虽然许多可视化工具都能够创建双轴图表,但常见建议都反对这样做,无论两个轴是否在同一域或不同域。相反,将两条线分割到单独的图表中仍然可以观察到两个变量的变化总体模式,同时减少了以误导性方式比较它们的诱惑。
常见的折线图选项
添加额外的线条以显示不确定性
当我们有一条线描绘统计摘要(如平均值或中位数)时,我们还可以选择添加到图表中,以显示每个绘图点的数据不确定性或变异性。一种方法是在每个点添加误差线,以显示标准差或其他不确定性度量。另一种替代方案是在线上方或下方添加辅助线,以显示数据的一定界限。这些线可能以阴影的形式呈现,以显示最常见的数值,如下面的示例所示。
Sparkline
折线图的一个特殊应用场景是火花线。火花线本质上是一种小型折线图,设计用于与文本对齐或放置在表格中多个值的旁边。由于它的尺寸很小,不会包含任何标签。统计数据可以放在火花线旁边,以指示起始值和结束值,或者可能是最小值或最大值。火花线的主要目的是展示一段时间内的变化,通常在金融环境中看到。
脊线图
一种带有多条线的折线图变体是脊线图。在脊线图中,每条线都绘制在不同的轴上,彼此之间垂直偏移一点。这种微小的偏移与完全的面板化布局相比可以节省空间。与火花线图类似,通常避免使用垂直轴标记:在不同的轴上读取这些值会非常困难。脊线图主要用于比较多个组在频率分布上的情况。当线条按某种方式排序时,如果能看到明显的模式,这种用法最为有效。
相关图
条形图
如果我们想要在水平轴上展示的变量不是数值型或有序型,而是分类型,那么我们需要使用条形图 而不是折线图。条形图中的条形通常会有小的间隙,这有助于强调所绘制类别的离散性。然而,需要注意的是,当我们的水平轴是数值型或有序型时,我们并不被限制使用条形图,如下面的示例所示。
左侧:按类别分组的柱状图。右侧:按时间分组的柱状图。
散点图
当水平轴变量是分类变量时,我们可以使用的另一种图表类型是散点图,或克利夫兰散点图。散点图与线图类似,但连接连续点的线段不存在。这种缺乏线段的特点使点不受其顺序进程的束缚,因此标签和点的顺序可以像条形图一样自由调整。使用散点图相对于条形图的主要优势在于,散点图与线图一样,不受必须包含零基线的限制。如果我们有分类变量级别的值,但相关值没有具有意义的零基线,那么散点图可以是一个很好的图表类型选择。
直方图
当折线图的垂直轴展示频率分布信息时,我们可以选择将数据可视化为直方图。直方图的主要优势之一在于,每个箱内的条形图能更一致地显示频率。在折线图中,频率判断可能会产生误导,尤其是在分布的峰值和谷值处。然而,折线图在可视化频率分布方面确实有一个优势:如果我们需要比较两个不同的组别,这对直方图来说非常困难。如前一节在使用折线图时所展示的,我们只需将两个组的线条绘制在同一坐标轴上,几乎不会出现问题。 直方图
密度曲线
另一种基于频率的折线图是密度曲线,或称为核密度估计(KDE)。虽然折线图通过将频率计数按箱聚合为单个点,但 KDE 以连续的方式聚合每个点的贡献。在 KDE 中,每个点在其真实值(即标题中的核)周围贡献一小块体积;所有体积的总和给出了最终的密度曲线。由于核的形状有太多选项,核密度估计通常用于数据可视化的程序化方法。
面积图
折线图的扩展包括在折线与零基线之间添加阴影,这被称为面积图 。面积图可以被视为折线图与柱状图的混合体,因为数值不仅可以从其垂直位置读取,还可以从每个点与基线之间的阴影区域大小读取。
连接式散点图
如果你想要用折线图绘制两组数值,可以考虑使用另一种图表类型——连接散点图。在标准散点图中,两个坐标轴代表两个感兴趣的变量,轴上绘制的点表示这些变量的数值。如果我们按照第三变量(如时间)指定的顺序连接这些点,就得到了连接散点图。连接散点图不仅适合观察两个变量之间的关系,还能展示它们随时间或第三变量数值的变化情况。
连接散点图(右下角)是两个折线图(右上角、左下角)的组合。注意右上角图表的轴被交换了位置。
可视化工具
折线图是一种多功能且实用的图表类型,因此应该在任何你选择的数据可视化工具中都能找到。基本的折线图,即在一个轴上绘制一条或多条线,应该是常见的,但高级选项如双轴可能不存在或需要额外的工作来设置。脊线变体不是常见的内置功能,通常需要自定义编程或自定义软件包来创建。微型图(sparklines)单独使用也不常见,通常被视为其他报告工具的一部分内置功能。