数据可视化 - 图形语法

7 Jan 2025 | 11分钟阅读

引言

将复杂数据转换为图形表示(包括地图、图表和表格),以促进数据理解和解释的系统称为事实可视化。由于它突出了原始数据可能忽略的模式、趋势,包括异常值,因此它对数据分析至关重要。可视化能够将复杂的数据集有效地呈现给技术和非技术受众,从而支持明智的决策制定。

简单的折线图和条形图是数据可视化的早期形式,此后它们已经发展成复杂、动态的仪表板和信息图。海量数据和高级分析的兴起进一步凸显了视觉辅助工具在从海量数据中提取有价值见解的重要性。

数据可视化至关重要,因为它除了呈现数据外,还可以讲述故事并激发互动。数据可视化利用视觉感知,有助于快速吸收信息,因此是研究、商业和媒体等多个领域的重要工具。在我们这个数据驱动的世界里,对见解的需求比以往任何时候都更迫切,因此,掌握数据可视化变得比以往任何时候都更重要。

图形语法概述

一个称为“图形语法”的理论框架为数据可视化提供了一种系统的方法。这个框架由 Leland Wilkinson 创建,并通过 R 的 ggplot2 等软件包推广,它通过分解图像的组成部分,为创建各种数据图形表示提供了一种有组织的方法。

意义

图形语法提供了一个灵活、一致的框架,用于创建各种可视化,从简单的散点图到复杂的多层图。通过理解和应用其原则,用户可以创建更有意义、更有效的可视化,从而真正传达数据见解。这种方法对于统计学家、数据科学家以及任何参与数据分析的人来说都特别有价值,因为它能够更深入地理解图像的底层结构,并提供了定制和扩展可视化以满足特定需求的工具。

图形的基本要素

图形语法框架中用于构建图像的基本构建块是组合起来创建有效可视化的重要组成部分。

  • 数据(Data): 任何图像的基础都是数据,它代表需要可视化的原始数据。为了生成精确且富有洞察力的视觉表示,了解数据结构中包含的变量和类型至关重要。
  • 美学(Aesthetics): 与数据相关联的视觉属性,例如大小、形状、颜色和位置,称为美学。通过定义数据的视觉特征,这些映射使用户能够理解数据。
  • 几何图形(Geometrics): 用于在图表中显示数据的形式或形状,例如条形、线条或点,称为几何图形(Geoms)。它们是显示连接和数据点的基本图像组件。
  • 刻度(Scales): 它们通过将数据值映射到视觉值来确保表示准确地反映数据。为了有效地理解数据,刻度控制颜色渐变和轴边界等元素。
  • 坐标系(Coordinate systems): 坐标系定义了相对于轴和空间关系的绘图数据。尽管极坐标提供了一种替代视角,但笛卡尔坐标系是最常用的系统。
  • 分面(Faceting) 是将数据分成更小的组,并为每个组创建一个单独图的过程。通过比较数据中的不同分组,可以使用此方法来发现不同类别之间的趋势。
  • 统计变换(Statistical transformations) 包括对数据应用操作,以强调或概括特定特征,例如分布或趋势。这些变换突出了关键特征或简化了复杂数据。
  • 主题(Themes): 图的整体视觉风格,包括其字体、颜色和背景元素,称为主题。合适的主题可以提高清晰度和视觉吸引力,使可视化引人入胜且信息丰富。

图形语法的层级

  • 基础层(Foundational Layer): 原始数据及其到美学的首次映射(例如在笛卡尔平面上的位置)构成了基础层,它是图形语法的基石。这一层创建了可视化的基本框架,为后续阶段的构建提供了基础。它提供了数据视觉组织的基本结构。
  • 几何层(Layers of Geometry): 几何层使用线条、点、条形或面积等形状为数据提供视觉呈现。这些层对于以可理解的视觉格式呈现数据至关重要。为了增强可视化效果,可以堆叠多个几何层以突出数据的不同特征。例如,可以在散点图上添加一条趋势线使其更加突出。
  • 统计层(Layers of Statistics): 应用数据转换,例如聚合、汇总或平滑,是统计层所包含的内容。这些层通过强调特定主题或简化复杂数据来促进获取见解的过程。例如,统计层可以显示随时间变化的平均值,从而更形象地展示数据的长期模式。
  • 注释层(Layers of annotation): 标签、文本注释和参考线是注释层中用于为可视化提供额外上下文的元素。这些层通过强调或阐明关键数据点来增强可视化的信息价值。例如,注释可以突出重要的数据点或模式,帮助用户理解数据所传达的故事。
  • 分面层(Layers of Facets): 分面层将数据分成更小的显示区域以进行比较,通常以网格的形式。通过使用此方法,在比较不同类别或维度的数据时,可以更清楚地看到趋势和差异。分面允许对材料进行更全面和细分的分析。
  • 主题层(Layers of Theme): 图的整体视觉设计,包括字体、颜色和网格线,由主题层控制。主题通过修改这些元素来增强可视化的清晰度和视觉吸引力。精心设计的主题确保故事既美观又易于理解,在许多可视化中保持一致的外观和感觉。
  • 同步层(Sync Up Layers): 坐标层指定了在图像中使用的坐标系类型(笛卡尔或极坐标)。这些层控制数据的放置和视图,这会影响整个可视化的解释方式。作为可视化设计的一个关键要素,坐标系统的选择可能会对数据的显示方式产生重大影响。
  • 层集成(Layer Integration): 图形语言中的层是可叠加的,可以组合起来创建完全渲染的图像。用户可以通过堆叠这些不同的层来构建复杂且信息丰富的视觉效果。由于这种分层方法提供的灵活性和准确性,可以创建精确、复杂的视觉效果,从而充分传达数据见解。

图形语法的资源和集合

  • R 语言中的 ggplot2: ggplot2 是 R 编程语言中最受欢迎的数据可视化应用程序之一,由 Hadley Wickham 开发。它基于图形语法的理念,允许用户叠加各种元素,包括数据、美学、几何图形和刻度,以创建复杂的视觉效果。由于 ggplot2 的出色灵活性,可以生成独特、第一流的视觉效果。研究人员、数据科学家和需要复杂且可定制可视化效果的统计学家经常使用它。
  • Vega (JavaScript) 和 Vega-Lite: Vega-Lite 等声明式可视化语法旨在创建、共享和分析可视化。虽然 Vega 功能更丰富、更灵活,但 Vega-Lite 提供了更用户友好的语法,构建可视化所需的编码知识更少。这些工具在以 JSON 格式描述可视化时,会解释数据变换、刻度、图层等组件。在线开发者和希望将交互式可视化集成到 Web 应用程序中的数据分析师会发现它们非常有帮助。
  • Python 的 Altair: Altair 是一个 Python 包,基于 Vega-Lite,提供了一种易于使用的语法来构建复杂且交互式可视化。只需少量代码,用户就可以创建数据变量和视觉属性之间的映射来构建复杂的视觉效果。此外,Altair 还提供了工具提示和缩放等交互功能,并且与 Pandas 等其他 Python 数据科学工具集成良好。对于希望使用易于使用的工具生成高质量交互式可视化效果的 Python 用户来说,它是理想的选择。
  • 多语言的 Plotly: Plotly 是一个通用的可视化框架,可与 MATLAB、JavaScript、R、Python 等编程语言一起使用。它遵循图形语法的原则,并支持交互式在线可视化的开发。Plotly 提供各种图表样式和自定义选项,是创建共享可视化的有效工具。需要跨多种编程环境开发交互式可视化的开发者和数据科学家会发现它非常有用。
  • Tableau: Tableau 是一款商业数据可视化应用程序,它运用了图形语法的大部分原则。通过其拖放界面,用户无需了解太多编程知识即可构建复杂的可视化。Tableau 可用于基本和复杂的可视化,因为它提供了广泛的自定义选项、数据变换和叠加功能。企业和业务分析师经常使用它来创建仪表板、报告和可视化数据探索。
  • Python 的 Seaborn: Seaborn 是一个 Python 包,旨在简化复杂统计图表的创建。它构建在 Matplotlib 之上。由于它提供了预装的主题和颜色方案,因此创建视觉吸引人的图表变得轻而易举。Seaborn 遵循图形语法的许多原则,使用户能够轻松构建多图网格和可视化复杂数据集。需要使用 Python 创建引人入胜且信息丰富的统计可视化效果的分析师和数据科学家经常使用它。
  • Python 的 Bokeh: Bokeh 是一个 Python 包,用于创建 Web 就绪的交互式可视化。它允许用户创建能够处理大量数据并实现实时流式传输的图表,并提供强大的 Web 应用程序自定义和集成功能。对于开发基于 Web 的可视化项目的 Python 开发者来说,Bokeh 是一个非常好的选择,因为它在构建仪表板和交互式数据应用程序方面非常有用。

最佳实践和常见错误

在使用图形语法生成数据可视化时,遵循最佳实践至关重要,以确保准确性、有效性和可读性。为了创建既不误导也不含糊的可视化,避免常见错误也很有帮助。

最佳实践

  • 了解您的受众: 根据受众的兴趣和知识水平调整您的可视化。确保复杂性和深度适当,避免使用冗余的语言和复杂的图形。
  • 尽可能简化: 选择最简单的示例,尽管如此,它也能清晰地传达您的观点。消除不必要的元素以避免混乱,并专注于最重要的部分。
  • 使用一致的轴和刻度: 为了便于准确比较,请确保所有可视化中的轴和刻度都相同。确保比例适合所呈现的数据,并正确标记轴。
  • 选择正确的几何图形: 选择准确地表示数据的几何图形。例如,使用折线图表示时间序列数据,使用条形图表示分类数据。如果可能,避免使用 3D 图表,因为它们可能会歪曲视觉效果。

常见错误

  • 不准确的刻度: 如果可能,避免截断轴或使用非线性刻度,因为这可能会通过强调或弱化趋势来误导读者。
  • 过于复杂的可视化: 过度堆叠图层或复杂信息可能会使观察者感到困惑,并使可视化难以解释。如果可能,请简化以实现清晰度。
  • 不恰当的几何图形应用: 使用错误的图表类型或几何形状可能会导致对数据的误解。例如,在使用带有饼形图表示多个类别的数据时,可能很难准确比较比例。
  • 误导性或不一致的颜色方案: 使用过于相似的颜色或使用与数据不一致的颜色方案可能会导致混淆。此外,在使用可能暗示不真实关系的颜色渐变时要小心。

案例研究和应用

COVID-19 数据可视化(约翰斯·霍普金斯大学)

马里兰大学开发了一个交互式仪表板,以显示在 COVID-19 大流行期间病毒在全球的传播情况。该仪表板利用统计趋势、地理显示和注释等元素,对疫情进行了全面分析。它成为公众、政府和媒体跟踪事态发展的关键工具,凸显了分层可视化在理解复杂、动态数据中的价值。

Tableau 销售数据分析

一家零售公司利用 Tableau 分析不同产品类别和地区的销售情况。该公司使用了分面和几何图形叠加,例如条形图和折线图,以突出关键绩效指标并可视化销售趋势。这种方法有助于发现表现不佳的地区,从而做出数据驱动的决策,从而提高销售额。这个例子表明,分面和适当的几何图形应用可以提供有价值的业务见解。

NASA 的气候变化可视化

NASA 创建了可视化图像,以显示气候变化的影响,包括海平面上升和全球气温变化。通过使用统计层来展示趋势和使用坐标层来表示全球地图,这些可视化有效地传达了复杂的气候科学数据。这些图像证明了图形语法可以有效地传达重要的环境信息,并被用于促进意识并参与政策和教育对话。

客户细分分析(Altair)

使用 Altair,一个营销团队可以根据客户的人口统计数据和购买模式来可视化客户细分。不同细分市场通过散点图中的颜色编码簇进行表示,并使用统计数据和人口统计分面进行附加层。分层可视化在市场分析中非常有用,因为它们可以实现量身定制的营销策略,从而提高客户参与度和转化率。

股票市场分析(ggplot2)

一位金融分析师使用 R 的 ggplot2 包通过可视化历史股票数据来比较不同股票随时间的变化。股票价格显示为折线图,每个股票都有不同的图层,并为市场中的关键事件提供注释。这种方法证明了分层和注释如何增强金融数据分析,并帮助分析师和客户理解市场动态。

Election Results Visualization (New York Times)

《纽约时报》制作了交互式地图,以显示美国总统大选各县和各州的投票结果。通过显示投票率的统计层、政党颜色编码和地理坐标层,选举结果可以直观地看到。这种可视化清晰地展示了投票过程,并且还显示了统计和地理分层在大规模数据可视化中的价值。


下一主题Matplotlib 子图