朋友不会让朋友制作某些类型的数据可视化 - 它们是什么以及为什么不好。
这是一篇关于数据可视化好坏实践的主观文章。 以下是示例和解释。
Scripts/
目录包含生成下面所示图形的.Rmd
文件。
它需要R、RStudio和rmarkdown包。
这必须是第一个。 均值分离图在科学出版物中是最常见的。 我们有两个或更多组,每组包含多个观察值;它们可能有不同的均值、方差和分布。 可视化的任务是显示数据的均值和分散程度。
在这个例子中,两组有相似的均值和标准差,但分布却很不同。它们真的"相同"吗? 只是不要为均值分离使用条形图,或者至少在决定使用条形图之前检查一些事项。
值得一提的是,我受到了许多在推特上谈论条形图局限性的研究人员的启发。 这里有一篇出版物:Weissgerber等人,2015年,PLOS Biology。
这在文献中也很常见,但不幸的是,小提琴图(或任何种类的平滑分布曲线)对于小样本量没有意义。
即使底层观察值相似,小样本量的分布和四分位数也可能差异很大。 分布和四分位数只有在大样本量时才有意义。 我之前做过一个实验,多次从同一个正态分布中抽样,并计算每个样本的四分位数。 只有当n大于50时,四分位数才趋于稳定。
请原谅我的用词,但这确实是数据可视化的罪过,而且同样很常见。 我能理解为什么这个错误很普遍,因为似乎我们中的许多人并没有花太多心思思考这个问题。
色标很漂亮,但我们必须格外小心。 当色标(或颜色渐变)用于表示数值数据时,最深和最浅的颜色应该有特殊含义。 你可以决定这些特殊含义是什么:例如,最大值、最小值、平均值、零。但它们应该代表有意义的东西。 热图/颜色渐变的数据可视化罪过是最浅或最深的颜色代表某些任意数字。 *这和条形图中最长的条不是最大值一样糟糕。*你能想象吗?
我们讨论过不要为均值分离制作条形图,但这是一个不同的问题。 它与呈现多因素实验结果有关。 条形图草原在科学出版物中非常常见,但不幸的是在传达结果方面也效果不佳。
数据来源:Matand等人,2020年,BMC Plant Biology
条形图草原很常见,因为多因素实验很常见。 然而,条形图草原的设计不适合其目的。 要传达多因素实验的结果,需要仔细考虑如何按感兴趣的因素进行分组/分面。 在这个例子中,我着重比较了在每个"品种"水平上"处理"和"外植体"对"响应"的影响。 然而,如果关注点是在每个"外植体"水平上"处理"和"品种"对"响应"的影响,那么就需要不同的布局。
热图在科学出版物中非常常见,在组学论文中更是极其普遍。 然而,要使热图有效,我们必须考虑行和列的排序。
在这个例子中,我将细胞作为列,特征作为行。网格显示的是z分数。 如果不重新排序行和列,就 不可能从热图中获得任何有用的信息。 我们可以使用聚类来重新排序行和列,但这不是唯一的方法。 当然,如果行和列映射到物理实体(96孔板的行和列),那么就不能重新排序它们。 但至少考虑重新排序行和列是一个很好的想法。
...如果你善于重新排序行/列并选择颜色渐变。 这里是一个使用模拟数据生成的"抽象艺术"示例。
这幅艺术作品的R代码可以在这里找到。
关于如何重新排序热图的行和列的教程,请参见此Markdown文件。
热图中的异常值真的会改变我们对可视化的感知和解释。 这一点适用于所有使用颜色表示数值数据的可视化方式。 让我给你举个例子:
在这个例子中,我有2个观察值。对于每个观察值,我测量了20个特征。 如果不检查异常值,可能会觉得这两个观察值总体上是相似的,只是在2个特征上有差异。 然而,在将颜色刻度限制在数据的95百分位左右后,就显示出这两个观察值在所有特征上都是不同的。
这是我们许多人都遇到过的常见问题。 在多因素实验中,有时响应变量的范围在不同因子水平之间变化很大。
这个假设的实验测量了2个组(对照组vs.处理组)中的3种化合物。 如果不检查每种化合物的数据范围,你很可能会错过处理对化合物1有强烈影响这一点。 这是因为在这个实验中,化合物1的浓度范围比其他化合物要窄得多。
网络图在科学出版物中很常见。它们在展示关系数据方面非常有用。 然而,网络的外观(而非拓扑结构)可能会对网络图的有效性产生巨大影响。
布局可以极大地改变网络的外观,使它们更容易或更难理解。 这里有3个来自同一数据的网络图。它们看起来非常不同。 数据来源:Li et al., 2022, BioRxiv
这里是同一网络的9种不同布局。它们看起来可以非常不同。
制作这个动画的R脚本可在这里找到
这总是房间里的大象,也是许多误导性可视化的本质。 在这个例子中,我测量了3个时间点的响应变量。 以下三个图中有两个是没问题的,但其中一个是数据可视化的罪行。你能看出为什么吗?
在点图和线图中,值由x轴和y轴上的位置表示。 同样的理念也适用于其他基于位置的可视化,如箱线图。 在条形图中,值由距离x轴的距离表示,因此是条形的长度。
第3个图不是从0开始的,这使得时间点2的条形长度约为时间点1的3倍。 事实上,真实的平均值差异更接近1.6倍。 我希望你能看出混淆长度和基于位置的可视化如何导致误导性的图表。
断轴可能对描绘跨越широ范围数值的数据有用。 (或者,可以使用对数刻度轴代替。) 对于基于位置的图形来说,断轴是可以的,因为数据是由轴上的位置表示的。 然而,我们必须非常小心带有断轴的条形图。这里有一个例子。
在这个例子中,两个图(左vs.右)显示的是相同的数据。 然而,通过改变轴的断点位置,可以使某些条形看起来更长或更短。 在这个例子中,条形"d"的长度可能看起来非常不同。 右图中条形"d"看起来很短的错觉归根结底是因为条形图是基于长度的图形,而不是基于位置的图形。
断轴的示例R代码可以在这里找到。
饼图是分数数据的常见可视化类型,其中分数加起来等于100%。 这是通过将一个圆分成扇形来实现的,扇形加起来构成一个完整的圆。 饼图受到批评,因为人类在读取角度和面积方面比读取长度要差得多。 这里有一篇博客文章探讨了这一点。
在这个例子中,我们有两组,每组包含4个子类别。
在经典饼图中,角度(因此也包括弧长和扇形面积)代表数据。
问题是很难在组间进行比较。
我们可以将饼图简化为环形图,数据现在由弧长表示。
然而,如果我们想用长度来表示数据,为什么不直接展开环形图,制作堆叠条形图呢?
在堆叠条形图中,条形并排显示,因此更容易在组间进行比较。
有趣的事实:堆叠条形图的底层脚本比饼图和环形图的底层脚本简单得多。 如果你想用ggplot制作次优的图表类型,实际上你需要付出更多努力。
在这个例子中,我们有3个组,每个组包含两个子类别(I型或II型)。
在同心环形图中,你可能会认为数据由弧长表示,但这实际上是不准确的。 外环的弧长比内环的弧长长得多。 第2组和第3组的数值完全相同,但第3组的弧长要长得多。 事实上,数据是由弧角表示的,而我们不擅长读取弧角。
由于外环更长,组的排序(哪个组在哪个环上)对图表的印象有很大影响。 这可能导致一个明显的悖论,即较大的值反而有较短的弧。 更好(且更简单!)的替代方案是展开环形图,制作一个传统的堆叠条形图。 顺便说一下,这也是我对circos图和其他圆形布局图表的主要问题。
绿色弱是最常见的红/绿色盲类型,在男性中发生率为1/16,在女性中为1/256。 任何同时使用红色和绿色阴影的色标对红/绿色盲的人来说都是一个问题(图中第三列)。 此外,红/绿和彩虹色标在黑白打印时(灰度,图中第二列)完全无法保留信息。 许多科学软件仍然使用红/绿或彩虹作为默认色标,这让我很恼火。 更"现代"的色标,如viridis既适合色盲,又适合灰度打印(图中第三行)。 而且它们看起来也很不错。
堆叠条形图对于可视化比例数据很有用。 堆叠条形图常用于可视化群落结构、种群结构或混合分析。 这种可视化归结为一组样本,每个样本包含多个类别的成员。 然而,当我们有很多样本和类别时,堆叠条形图需要优化才能有效。 这里的"优化"指的是样本的分组和排序。
这里我们有一个包含100个样本和8个成员类别的示例数据。 由于样本和类别的数量众多,如果不优化条形的顺序,很难从这个图中看出任何东西。我到底在看什么? 重新排序条形后,哇,这真的产生了很大的差异,你不觉得吗? 关于如何优化堆叠条形图的教程,请参阅这个脚本。
有时,当可视化试图同时实现太多目标时,会变得混乱和无效。 一个这样的例子是混合使用堆叠条形图和均值分离图。 一个显示总和为100%的比例数据,另一个显示均值之间的差异和均值周围的离散程度。 这些在数据可视化中是非常不同的任务。
在这个假设的实验中,我们将蓝莓植株分为两组。 一组是对照组;另一组用化学药品处理以加快果实发育。 每组有5株植物。 处理的反应分为3类: 浅绿色果实、浅蓝色果实和深蓝色果实。 对每株植物的100个果实进行检查,并计算每类果实的数量。 计算并报告了每类果实的百分比。 研究的问题是:化学处理是否有效?
第一个堆叠条形图作为可视化比例数据的标准方式是没问题的。 很明显,所有类别加起来等于100%, 化学处理强烈地将颜色分布转向了最发达的阶段(深蓝色)。
中间的堆叠条形图存在问题, 主要是因为它试图同时完成两个不同的数据可视化任务。 当误差线和点叠加在堆叠条形上时, 变得不清楚哪些误差线和点在进行比较。 由于堆叠条形的性质,上部堆叠的误差线和点必须向上移动, 因此对于误差线和点来说,y轴的解释变得不直观。
最后,如果可视化的主要目的是均值分离和均值周围的离散程度, 第三个图是更好的选择。 对于正在进行的比较没有任何歧义。 如第一个堆叠条形图所示, 化学处理显著增加了深蓝色果实的比例, 同时减少了浅色果实的比例。
暂时就这些。当我有时间(和灵感)制作更多例子时,我会更新这个内容。 不确定下一个会是什么,但请继续关注!
AI Excel全自动制表工具
AEE 在线 AI 全自动 Excel 编辑器,提供智能录入、自动公式、数据整理、图表生成等功能,高效处理 Excel 任务,提升办公效率。支持自动高亮数据、批量计算、不规则数据录入,适用于企业、教育、金融等多场景。
基于 UI-TARS 视觉语言模型的桌面应用,可通过自然语言控制计算机进行多模态操作。
UI-TARS-desktop 是一款功能强大的桌面应用,基于 UI-TARS(视觉语言模型)构建。它具备自然语言控制、截图与视觉识别、精确的鼠标键盘控制等功能,支持跨平台使用(Windows/MacOS),能提供实时反馈和状态显示,且数据完全本地处理,保障隐私安全。该应用集成了多种大语言模型和搜索方式,还可进行文件系统操作。适用于需要智能交互和自动化任务的场景,如信息检索、文件管理等。其提供了详细的文档,包括快速启动、部署、贡献指南和 SDK 使用说明等,方便开发者使用和扩展。
开源且先进的大规模视频生成模型项目
Wan2.1 是一个开源且先进的大规模视频生成模型项目,支持文本到图像、文本到视频、图像到视频等多种生成任务。它具备丰富的配置选项,可调整分辨率、扩散步数等参数,还能对提示词进行增强。使用了多种先进技术和工具,在视频和图像生成领域具有广泛应用前景,适合研究人员和开发者使用。
全流程 AI 驱动的数据可视化工具,助力用户轻松创作高颜值图表
爱图表(aitubiao.com)就是AI图表,是由镝数科技推出的一款创新型智能数据可视化平台,专注于为用户提供便捷的图表生成、数据分析和报告撰写服务。爱图表是中国首个在图表场景接入DeepSeek的产品。通过接入前沿的DeepSeek系列AI模型,爱图表结合强大的数据处理能力与智能化功能,致力于帮助职场人士高效处理和表达数据,提升工作效率和报告质量。
一款强大的视觉语言模型,支持图像和视频输入
Qwen2.5-VL 是一款强大的视觉语言模型,支持图像和视频输入,可用于多种场景,如商品特点总结、图像文字识别等。项目提供了 OpenAI API 服务、Web UI 示例等部署方式,还包含了视觉处理工具,有助于开发者快速集成和使用,提升工作效率。
HunyuanVideo 是一个可基于文本生成高质量图像和视频的项目。
HunyuanVideo 是一个专注于文本到图像及视频生成的项目。它具备强大的视频生成能力,支持多种分辨率和视频长度选择,能根据用户输入的文本生成逼真的图像和视频。使用先进的技术架构和算法,可灵活调整生成参数,满足不同场景的需求,是文本生成图像视频领域的优质工具。
一个基于 Gradio 构建的 WebUI,支持与浏览器智能体进行便捷交互。
WebUI for Browser Use 是一个强大的项目,它集成了多种大型语言模型,支持自定义浏览器使用,具备持久化浏览器会话等功能。用户可以通过简洁友好的界面轻松控制浏览器智能体完成各类任务,无论是数据提取、网页导航还是表单填写等操作都能高效实现,有利于提高工作效率和获取信息的便捷性。该项目适合开发者、研究人员以及需要自动化浏览器操作的人群使用,在 SEO 优化方面,其关键词涵盖浏览器使用、WebUI、大型语言模型集成等,有助于提高网页在搜索引擎中的曝光度。
基于 ESP32 的小智 AI 开发项目,支持多种网络连接与协议,实现语音交互等功能。
xiaozhi-esp32 是一个极具创新性的基于 ESP32 的开发项目,专注于人工智能语音交互领域。项目涵盖了丰富的功能,如网络连接、OTA 升级、设备激活等,同时支持多种语言。无论是开发爱好者还是专业开发者,都能借助该项目快速搭建起高效的 AI 语音交互系统,为智能设备开发提供强大助力。
一个用于 OCR 的项目,支持多种模型和服务器进行 PDF 到 Markdown 的转换,并提供测试和报告功能。
olmocr 是一个专注于光学字符识别(OCR)的 Python 项目,由 Allen Institute for Artificial Intelligence 开发。它支持多种模型和服务器,如 vllm、sglang、OpenAI 等,可将 PDF 文件的页面转换为 Markdown 格式。项目还提供了测试框架和 HTML 报告生成功能,方便用户对 OCR 结果进行评估和分析。适用于科研、文档处理等领域,有助于提高工作效率和准确性。
飞书多维表格 ×DeepSeek R1 满血版
飞书多维表格联合 DeepSeek R1 模型,提供 AI 自动化解决方案,支持批量写作、数据分析、跨模态处理等功能,适用于电商、短视频、影视创作等场景,提升企业生产力与创作效率。关键词:飞书多维 表格、DeepSeek R1、AI 自动化、批量处理、企业协同工具。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号