图的分类法:解耦数据和图表类型

news/2025/9/27 17:09:47/文章来源:https://www.cnblogs.com/devil-sx/p/19115326

HKUST 25 Fall COMP 6411D Data Visualization 课堂笔记

可视化的可视化

当我第一眼看到 slide 中“chart taxonomies” ,我有两个反应:

  • 图表数量也太多了
  • 这个分类方式并不是很直观,Comparsion / Relationship / Distribution / Composition 这些术语都是一些很高层的抽象概念,并且分类本身比较繁琐,比如 Qlik 的分类是一个不规则的树结构,层层分类。并且分类方式并不唯一,比如可以看到 Bar Chart 在 Qlik 中出现多次

../../Extra/Images/IMG_20250927170623812.png

是否能够找到一个更加直观、客观、唯一的分类方式?

25-象限分类图

我对图形的分类通过三个性质判断

  • 数据是“自变量”还是“因变量”
  • 数据是可量化的 (value) 还是不可量化的 (label)
  • 自变量/因变量的数量

比如 Single Line plot 就是 “单个自变量 value 到单个因变量 value” 的一种图像

可视化必然包括表达者和观众主观性

所谓“自变量”“因变量”并非出自数学函数的定义,而是出自观众的角度定义,大致来说“自变量”是观测前已知的,是观众的出发点,是切入数据的角度;而“因变量”是观测前未知的,是观众想要知道的,是观测的结果。一种简单的判断方式是自变量可以展示在图像的标题中,“1-12 月英伟达股价变化”,只看标题已经大概知道我们的自变量可能是月份,包含一月、二月、...,而具体股价是多少需要查看图表才能知道

当然以上定义也是一种主观定义方式,即使是同一张图,观众也可能有多种观测的角度,比如如下的 Dot Chart,可能存在多个解释角度:

  • 我可以将 x-y axis 当作两个自变量,即二维空间作为观测角度,去观测不同颜色/形状的 label 在二维空间的分布,此时是 “两个自变量 value 到两个因变量 label” 的图像;
  • 同样也可以将 label 看作自变量,观察数据在二维空间的未知信息,此时是 “两个自变量 label 到两个因变量 value” 的图像
  • 分布这个概念是一个高级的抽象概念,我还可以说以二维空间作为观测角度,去观测不同颜色/形状的 label 在二维空间的“数量”(尽管当点的数量很多时很难直观从 dot 图上得到具体的数值,只能直观感知个大概), 此时是“两个自变量 value 到三个因变量,两个 label 一个 value” 的一种图像

并且不仅和观众相关因人而异,和数据的具体数值也相关。当然如果存在切入角度较多的问题,也说明此时表达着应该尽可能调整作图方式确保呈现信息唯一确定。

../../Extra/Images/IMG_20250927170624080.png

数据是可量化/不可量化的同样存在这个问题,比如连续、密集的时间,毫无疑问是 value;是男性还是女性,毫无疑问是 label;那月份呢,似乎可以作为 label 写成一月、二月、...,也可以认作是以一个月为粒度的时间 value,随着可量化的数值离散化稀疏化,value 和 label 的界限会愈加模糊。

表达者/观众的主观性必然导致无法完全客观分类,但本文尽量朝着这个方向呈现。

分类结果

我根据前文提到的三个性质,将图表分为 5x 5=25 个种类,并将部分在课程中介绍过的表格放入对应象限中:

../../Extra/Images/IMG_20250927170624319.png

大致来说,此图左下角 “Single 自变量-Single 因变量” 是最直观、信息量最少的图表,左上、右下是信息量较多的图表,而右上是信息量最多的图表,这个分类方法具有局限性,难以归类表征数据结构的“图/网络结构”数据表格。其中 Box 图表因变量包含 value 和 label,其中 label 指的是“是否是 Outliner"

BTW,“25-象限分类图” 在 “25-象限分类图”中的位置属于 “单 label (图的种类)-多 label(自变量-因变量) ”

自动数据可视化

给这种分类方法设想了一个假想应用场景,在科研实验/写文章绘制图表时,我总要画一些时间思考到底使用什么图表,特别是对于有复杂变量的系统在做大量实验时,我需要花相当一部分时间思考从哪个角度观测系统找到相关性,然后再画一些时间思考用什么图表展示,最后告诉 Chat GPT 让他完成对应的 matplotlib 代码,如果不直观,可能还要多想几种呈现方式。

这种分类方法解耦了数据结构和图表之间的依赖关系,也许可以实现一个 Chart Compiler,输入数据并指定数据的分类,其就能自动识别找到有几种图表符合,自动返回几种不同的图表给用户评估。这或许能够节省做实验的时间

老师推荐了来自 UW Interactive Lab [1] 的工作 voyage[2] 和 dacro[3] 工作,该方向叫做 automated visualization design。其中将数据和图像解耦只是第一步,确认数据可以允许由什么 chart 呈现 (hard constraints),而 hard constraints 所允许的 design space 中仍存在大量的选项,第二步则是通过某种需要某种“评分机制”量化排序找到最佳的图表。这面临着两个问题:

  1. Design space 非常大
  2. 可视化判断标准相当主观,难以判断

靠用户收集的数据仅仅只是占 design space 中一小部分,所以“评分机制”需要某种泛化性。 voyager 的思想主要是用预先设定规则启发式搜索,而 draco 的方法采用了 learning based 方法尝试学习泛化判断标准。


  1. https://idl.uw.edu/about ↩︎

  2. https://idl.uw.edu/papers/voyager ↩︎

  3. https://idl.uw.edu/draco/ ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完整教程:图解人工智能中的高等数学(python实现)---一元函数微分学

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

怎么建设网站临汾做公关用的网站

http://{ip}:{port}/refresh 说明:springBoot版本是1.5.9,接口路径与2.x,不同 路径区别:/refresh VS /actuator/refresh 用postman调用refresh接口刷新git配置,报错如下,没有权限 在服务本地启动&#…

提供信息门户网站搭建wap网站源码下载

笔者是ctf小白,这两天也是遇到.git泄露的题目,需要工具来解决问题,在下载和使用的过程中也是遇到很多问题,写此篇记录经验,以供学习 在本篇标题三中有详细介绍了Linux系统添加环境变量的操作教程,以供学习 …

35Bourbaki1-1@《数学原理》1-1@20250927

35Bourbaki1-1@《数学原理》1-1@20250927

IDEA 2024的零卡死配置

IDEA 2024的零卡死配置用了苹果container跑Linux之后,IDEA 2024 用着用着就卡死,这是苹果 Silicon M1 Max专属JDK 8 的零卡死配置。 JDK版本配置 IDEA 2024在默认情况下 Project 的 Language level 会从JDK22开始的,…

Python + MediaPipe 手势绘画高级应用:从基础到创意交互 - 实践

Python + MediaPipe 手势绘画高级应用:从基础到创意交互 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

有建设网站的软件吗吉林市最新消息今天

这是连续剧般的文章,请关注,持续更新中... 系列文章: http://t.csdnimg.cn/Os83Qhttp://t.csdnimg.cn/Os83Q这篇文章将我们的reactro转变成http服务器... HTTP HTTP介绍 HTTP是一个基于TCP通信协议的基础上的应用层协议。接下来我们需要解析HTTP请求消息…

网站怎么做百度认证做照片有那些网站好

这篇文章主要介绍了opencv python图像梯度实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下一阶导数与Soble算子二阶导数与拉普拉斯算子图像边缘:Soble算子:二阶导数:拉…

天津智能网站建设制作桓台网站建设

转自:进阶 JavaScript 必知的 33 个点【进阶必备】 进阶 JavaScript 必知的 33 个点【进阶必备】 Original 前端小菜鸡之菜鸡互啄 前端开发爱好者 2022-04-11 08:32 收录于话题#javaScript进阶1个 点击下方“前端开发爱好者”,选择“设为星标” 第一…

Crypto 2021 s Accepted papers

转载自:https://crypto.iacr.org/2021/acceptedpapers.phpAccepted Papers 接收论文These papers are listed in order of submission.这些论文按提交顺序排列。White Box Traitor Tracing白盒背叛追踪 Mark Zhand…

详细介绍:【数据结构】哈希表(Hash Table)详解

详细介绍:【数据结构】哈希表(Hash Table)详解2025-09-27 16:57 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displa…

Github 12.3kstar, 3分钟起步做中后台?Go+Vue 脚手架,把权限、代码生成、RBAC 都封装好了

嗨,我是小华同学,专注解锁高效工作与前沿AI工具!每日精选开源技术、实战技巧,助你省时50%、领先他人一步。👉免费订阅,与10万+技术人共享升级秘籍!go-admin 是一个基于 Gin + Vue 的前后端分离权限管理脚手架,…

电子商务网站建设行情建设网站的网站叫什么男

0 前言 无人驾驶技术是机器学习为主的一门前沿领域,在无人驾驶领域中机器学习的各种算法随处可见,今天学长给大家介绍无人驾驶技术中的车道线检测。 1 车道线检测 在无人驾驶领域每一个任务都是相当复杂,看上去无从下手。那么面对这样极其…

河南城乡建设部网站首页中国十大购物网站排行榜

题目链接 洛谷P4559 题解 只会做\(70\)分的\(O(nlog^2n)\) 如果本来就在区间内的人是不用动的,区间右边的人往区间最右的那些空位跑,区间左边的人往区间最左的那些空位跑 找到这些空位就用二分 主席树 理应可以在主席树上的区间二分而做到\(O(nlogn)\)&…

苏州app制作大型网站的优化方法

网络连通性测试与网络命令验证实验报告西工大计算机网络原理实验报告网络原理实验报告实验名称: 网络连通性测试与网络命令验证 日期: 2015.11.09 班级:学号: 姓名:【一】 预习内容5个常用网络命令&#xf…

北京网站seo哪家公司好wordpress 在线教育主题

存储引擎: 存储引擎是Inndb。它支持行级锁,以及表级锁, 支持事务操作, 需要主键,若未声明主键,则会寻找表中的 not null 以及 unique 修饰的字段。若表中无此类字段,会隐式生成字段。 索引&…

网站需求清单如何用c 做网站

文章目录 一、softmax函数1.1 引入指数形式的优点1.2 引入指数形式的缺点 二、交叉熵损失函数2.1 交叉熵损失函数2.2 softmax与交叉熵损失 参考资料 一、softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区…

250927

目录JT-JY5T1S1-1JT-JY5T1S1-2FT-(JY&VOAs) JT-JY5T1S1-1Good afternoon, Dream Time Travel, How can i help you? Oh, hello, i am interested in the hoilday you offer along the coast near here. Yes, we o…

Ti 毫米波雷达FFT的缩放问题

struct DPU_RangeProcHWA_FFTtuning_t{ /*! @brief Specify amount of right (divide) shift to apply to convert HWA internal 24-bit Range FFT output to 16-bit RadarCube. User should adjust this based on th…

完整教程:多线程——单例模式

完整教程:多线程——单例模式pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…