【数据可视化 第二周】「时序数据」和「比例数据」的可视化

梳理大纲:「时序数据」和「比例数据」的可视化
【1】时序数据
【2】比例数据
【3】实践

资料共享:
【木东居士】公众号

From 数据可视化 学习小组:由【木东居士】公众号 定期发起
对数据感兴趣的伙伴们 可一同在此交流学习

汇总图
在这里插入图片描述

【1】时序数据

时序数据:任何随着时间而变化的数据(如一天中气温随时间的变化)

「时间数据」按是否连续 可分为:
离散型时间和连续型时间两类,时间类型的差异决定了图表的表现形式也不同

1.1 离散时间的可视化

离散时间:
数据来源于具体的时间点或者时间段,且时间数据的可能取值是有限的

可视化:可采用柱状图、堆叠柱状图、散点图来表示

(1)单一柱状图

适用场景:
适合表示离散时间数据的趋势,且数据条个数一般不超过12条
适用于单类别数据的时间趋势表示,即系列值单一的数据

在这里插入图片描述

不适用场景(如每日股票)
不适合展示连续时间的变化趋势
不适合数据条过多的离散时间的趋势展示

在这里插入图片描述
(2)并列柱状图
可用于对比某一离散时间上的多个系列,以及展示随时间的变化趋势
在这里插入图片描述
注意:并列柱状图的属性系列,通常不能超过3条,否则图表横向空间会比较拥挤,展示的效果也不好

(3)堆叠柱状图

可用于展现:各个离散时间点总体的构成部分,是如何随着时间而变化的

普通堆叠柱状图:展示实际体量
(整体的构成部分,最好不要超过5项。若实际构成项大于5个时,需要做适当的归类,以保证图表重点突出)
在这里插入图片描述

百分比堆叠柱状图:展示相对体量
在这里插入图片描述

(3)散点图
通常用来表示两个变量间的相关关系
在表示离散时间数据时,其表达的是某一变量随时间的变化关系

散点图对比柱状图:
散点图:用位置来作为数值的视觉通道
柱状图:用高度作为数值的映射
在这里插入图片描述
当多个系列列时,比较起来很吃力
可以使用颜色或者不同的数据标记加以区分,如正方形、圆、三⻆角形、菱形等

1.2 离散时间的可视化

(1)折线图

折线图主要包括三类:点线图、折线图、曲线图

(点线图:当数据集中的数据项有限,不超过12个时,比较合适)
在这里插入图片描述

(折线图:当数据集中的数据项比较多,大于12条时,采用折线图比较合适)
在这里插入图片描述
(曲线图:相比于折线图,曲线图相邻节点的连线更加平滑,更加美观)
在这里插入图片描述

(2)阶梯图

阶梯图常用来表示,某两个相邻的时间节点,后一个节点的数据相对于前一个节点数据的升降变化,常用于商品价格变动、股票价格波动、税率变化等场景中

在这里插入图片描述

(3)拟合曲线图

若我们想要研究数据随时间的变化所表现出来的整体趋势时,可以根据多个离散点(T1,D1)、(T2,D2)…、(Tn,Dn),拟合一个最接近的一个连续函数关系
在这里插入图片描述

【2】比例数据

比例数据,通常是按照类别、子类别、群体进行的划分
对于比例型数据,我们进行可视化的目的,是为了寻找整体中的最大值、最小值、整体的构成分布、以及各部分之间的相对关系

1.饼图

当数据项超过一定数量时,可以按照占比,把排名最末的几项归位「其他」
在这里插入图片描述

2.环形图

环形图中心部位是空的,可以放置标签、整体数值、平均数值或其他内容
在这里插入图片描述

3.百分比堆叠柱状图

当比例数据中存在多个父系列,每个父系列又由多个子类构成,且各个系列的子类相同时,此时展示比例数据,可以采用百分比堆叠柱状图
在这里插入图片描述

4.百分比堆叠面积图

当比例数据中存在多个父系列,且父系列的数据类型为时间,要分析父系列的各构成部分占比随时间的变化趋势,此时可以采用堆叠面积图来表示比例关系的变化

在这里插入图片描述
(如果从某一点上对堆叠面积图进行垂直切片,那么就可以得到该时间段上的比例分布情况)

5.矩形树图

基于面积的可视化方法
外部矩形代表父级类别,内部矩形代表子类别(适合树状结构数据)
在这里插入图片描述
若用矩形树图来表示具有多个层级结构的比例数据,通常需要使用一些交互方式来辅助数据的展示(比如,单击对应区块进行下钻,悬停展示具体数值和比例,使用面包屑进行层级的跳转等)

实践

展示2018年全年的销售额整体趋势情况,以及不同品类销售额的发展趋势
使用:堆叠柱状图
在这里插入图片描述

展示某只股票的价格变动
使用:阶梯图
在这里插入图片描述

某快递公司每天寄件单的揽收时效分布
使用:矩形树图
在这里插入图片描述
在这里插入图片描述

对比同一公司内部,不同流向的包裹的承运量占比
同时对比不同快递公司之间,同一流向的包裹承运量的占比差异
使用:百分比堆叠柱状图
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个判断复杂的时序动态网络连通性并展示连通性变的 Python案例,使用了 NetworkX 和 Matplotlib 库: ```python import networkx as nx import matplotlib.pyplot as plt # 创建一个空的有向图 G = nx.DiGraph() # 添加节点 G.add_node(1) G.add_node(2) G.add_node(3) G.add_node(4) G.add_node(5) # 添加边 G.add_edge(1, 2) G.add_edge(2, 3) G.add_edge(3, 1) G.add_edge(4, 5) # 设置节点位置 pos = {1: (0, 0), 2: (1, 1), 3: (2, 0), 4: (3, 1), 5: (4, 0)} # 绘制初始状态的网络图 nx.draw(G, pos, with_labels=True) plt.show() # 定义时序数据 time_data = {1: [(1, 4)], 2: [(2, 5)], 3: [(3, 1)], 4: [(4, 1)], 5: [(5, 2)], 6: [(1, 5), (3, 4)]} # 记录连通性 connected_components = [] # 按时间顺序更新网络 for t in sorted(time_data.keys()): # 更新边 for (u, v) in time_data[t]: G.add_edge(u, v) # 记录当前的连通性 connected_components.append(nx.strongly_connected_components(G)) # 绘制当前状态的网络图 nx.draw(G, pos, with_labels=True) # 绘制连通性变 plt.title('Time Step: {}'.format(t)) plt.show() # 判断连通性是否发生变 if len(connected_components[-1]) != len(connected_components[-2]): print('Connectivity Changed at Time Step:', t) ``` 这段代码创建了一个有向图,然后定义了时序数据,按时间顺序更新网络,并通过 Matplotlib 库绘制出现有的网络图和每个时间步的网络图。同时,记录每个时间步的连通性,并在连通性变时输出提示信息。 这个例子中存在两个连通分量,分别是节点1、2、3和节点4、5。在第六个时间步,由于添加了两条跨越不同连通分量的边,导致网络的连通性发生变,输出了提示信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值