Copyright ©2022 Zhang Tongshuai

数据可视化最佳实践¶



清华大学 张统帅¶

2020.07.04¶

数据可视化流程¶

visualization_process

数据可视化流程¶

一个完整的数据可视化过程,主要包括以下4个步骤:

  • 初步盘点和了解数据
  • 确定数据可视化的目的
  • 根据数据和目的确定图表
  • 迭代可视化完成任务

盘点和了解数据¶

确定数据指标¶

  • 拥有哪些数据指标?
  • 数据各是何种类型?
  • 哪些数据是可用的?
  • 哪些数据是有用的?
  • 还需要哪些数据?

获取数据经常是最困难、最耗时的一步

常见数据类型¶

按照测量标度划分:¶

  • 类别型数据用于区分事物。例如,人可以分为男女,水果能分为苹果香蕉等。

  • 有序型用来表示对象间的顺序关系。例如,学生的成绩可以从低到高排列等。

  • 区间型用于对象间的定量比较。例如,身高 160cm 与身高 170cm 相差 10cm。

  • 比值型用于比较数值间的比例关系。例如,体重 80kg 是体重 40kg 的两倍。

按照可视化方式划分:¶

  • 分类数据:可以进行分组或排序,通常都是文字类型(可以分为有序和无序,均为离散数据)

  • 量化数据:可以测量,所有的值都是数字(可以是连续数据或离散数据)

  • 时间数据:以时间作为数据内容(既可以作为连续数据,又可以作为离散数据)

  • 地理数据:用作地理位置的标示(地名/经纬度信息,属于离散数据)

盘点和了解数据¶

关于数据想了解什么?¶

  • 单个数据样本?
  • 某个数据维度?
  • 数据间的关系?
  • ...

最大的问题是没有问题

常见数据关系¶

  • 比较(Comparison)

    两个变量彼此相对设置,并显示这两个变量之间的相互作用。 例如,折线图显示了给定时间段内不同月份的在线销售变化。

  • 构成(Composition)

    显示各个部分如何构成整体。 例如,饼图按区域显示电话公司的市场份额。

  • 分布(Distribution)

    分布图有助于了解异常值,正态趋势以及数据集中值的范围。 例如,列直方图显示了学校考试的成绩分布。

  • 关系(Relationship)

    试图显示两个或多个变量之间的联系或相关性。 例如,散点图显示了营销支出和销售收入之间的关系。

常见数据关系(分类二)¶

  • 趋势型:

    通常研究的是某一变量随另一变量的变化趋势,常见的有时间序列数据的可视化。

  • 对比型:

    对比两组或者两组以上的数据,通常用于分类数据的对比。

  • 比例型:

    数据总体和各个构成部分之间的比例关系。

  • 分布型:

    展现一组数据的分布情况,如描述性统计中的集中趋势、离散程度、偏态与峰度等。

(接下)

常见数据关系(分类二,续)¶

  • 区间型:

    显示同一维度上值的不同分区差异,常用来表示进度情况。

  • 关联型:

    用于直观表示不同数据之间的相互关系,如包含关系、层级关系、分流关系、联结关系等。

  • 地理型:

    通过数据在地图上的地理位置,来展示数据在不同地理区域上的分布情况,根据空间维度不同,通常分为二维地图和三维地图。

数据可视化目的/任务¶

  • 数据探索(Data Exploration)
  • 数据解释(Data Explanation)

关键

  • 明确可视化的目的
    • 了解内涵
    • 传达信息
  • 了解可视化的观众
    • 目标受众的需求、兴趣、专业水平
  • 知道正确的图表类型

数据探索¶

作为探索性数据分析(EDA)的重要组成部分,通过直观的视觉展示指导分析思路,不断迭代完成数据探索过程。

发现问题与验证假设

  • 数据聚类
  • 异常检测
  • 特征提取
  • 趋势分析
  • ...

data_analysis_new

数据解释¶

将创作者的想法或对数据价值的发掘,以直观的形式传达给观众。

  • 提供特定的上下文
  • 聚焦观众注意力
  • 引发思考和行动

如何选择图表的类型¶

visual_guide

按照可视化任务选择¶

  • 离差(Deviation)
  • 相关性(Correlation)
  • 排序(Ranking)
  • 分布(Distribution)
  • 时变(Change over Time)
  • 规模(Magnitude)
  • 比例(Part-to-whole)
  • 空间(Spatial)
  • 流向(Flow)

离差的图表选择¶

deviation

相关性的图表选择¶

correlation

排序的图表选择¶

ranking

分布的图表选择¶

distribution

时变的图表选择¶

change_v_time

规模的图表选择¶

magnitude

比例的图表选择¶

part_to_whole

空间的图表选择¶

spatial

流向的图表选择¶

flow

典型数据的常用图表¶

  • 分类数据

  • 时序数据

  • 层级数据

  • 多维数据

  • 网络数据

分类数据常用图表¶

1. 柱状图/条形图¶

bar-plots-of-contingency-table-1

2. 气球图¶

balloon-plot-of-a-grouped-frequency-table-1

3. 马赛克图/比例堆叠条形图¶

mosaic-plot-1

4. 马赛克图/比例堆叠条形图¶

马赛克图

5. 对应分析(Correspondence analysis)¶

correspondence-analysis

时间序列的常用图表¶

1. 折线图¶

2. 堆叠面积图¶

3. 柱状图¶

4. 甘特图¶

层级数据常用图表¶

1. 矩形树图¶

2. 旭日图¶

sunburst

3. 树状图(dendrogram)¶

多维数据常用图表¶

1. 散点矩阵图¶

scatter_matrix_plot

2. 平行坐标图¶

parallel_coordinate_plot

3. 安德鲁图(Andrew Plots)¶

Andrews_curve_for_Iris_data_set

4. 星形图¶

oecd

5. 相关性分析¶

008-plot-multivariate-continuous-data-r-graphics-cookbook-and-examples-for-great-data-visualization-scatter-plot-matrix-by-groups-ggpairs-1

6. PCA¶

20221201011613

网络数据常用图表¶

1. 节点连接图¶

network

2. 冲积图¶

3. 词云图¶

my_twitter_wordcloud_2

数据可视化的核心原则¶

1. 合理展示数据¶

show_the_data

2. 保持简洁,减少混乱¶

reduce_the_cluuter

3. 文字与图形融合¶

text_and_graph

4. 细节突出,吸引眼球¶

preattentive

5. 契合观众¶

audience.png

6. 用事实说话¶

  • 呈现数据的真相
  • 显示而非“设计”变化
  • 保证数据的连贯一致
  • 展示数据不同层次细节

看一看¶

Python可视化库¶

PythonVisLandscape

Python可视化库选择¶

python_visualization_tool

没有最好,只有适合¶

保持克制,敢于放肆¶