首页/新闻资讯/正文详情

Plotly.py 与 Dash Bio Clustergram 实战:用热图-树状图组合图分析基因表达数据的层次聚类

发布时间:2026/9/21 1:13:33 来源:云帆数科 栏目:资讯中心
Plotly.py 与 Dash Bio Clustergram 实战:用热图-树状图组合图分析基因表达数据的层次聚类
数据可视化数据分析【免费下载链接】plotly.pyThe interactive graphing library for Python :sparkles:项目地址https://gitcode.com/gh_mirrors/pl/plotly.py点击查看免费下载本篇技术指南围绕当前仓库 plotly.py 配套的生物信息学可视化文档 bio-clustergram.md 展开系统讲解 Dash BioClustergram组件的核心用法它如何以二维浮点数组为输入在组件内部完成缺失值填充imputation与层次聚类最终渲染出热图 行/列树状图组合图。读完本文你将掌握默认 Clustergram 的构建、树状图簇颜色与线宽定制、行列树状图相对尺寸控制以及如何将其嵌入 Dash 应用同时通过阅读本仓库figure_factory模块中create_dendrogram的源码实现plotly/figure_factory/_dendrogram.py理解树状图在 plotly.py 底层是如何基于 SciPy 聚类结果生成可交互 trace 的。Clustergram 是什么Clustergram 是热图heatmap 树状图dendrogram的组合图在基因表达gene expression数据领域最为常见。图中行、列两侧的树状图表达了层次聚类hierarchical clustering的结果聚类结构可以帮助研究者识别表达水平相关的基因分组距离越近的样本或基因在树状图上合并得越早在热图中也往往呈现相近的颜色模式。按照 bio-clustergram.md 的说明dash_bio.Clustergram是一个基于 Python 的组件其底层使用 plotly.py 生成图形。它的核心特点包括输入一个二维浮点型 numpy 数组或等价的 pandas DataFrame内置预处理缺失数据填充imputation与层次聚类计算都在组件内部完成使用者无需预先调用 SciPy聚类可视化达到或超过用户设定相似度阈值的簇在对应树状图中以单条 trace 呈现并可通过注解annotation突出显示可定制性用户可指定额外参数自定义计算聚类的度量与方法例如观测值之间的两两距离pairwise distance以及链接矩阵linkage matrix的计算方式。环境准备与依赖运行本文示例需要以下依赖pip install dash dash-bio pandas plotly其中dash_bio依赖的底层绘图能力即来自本仓库 plotly.py而层次聚类计算依赖scipy。从 plotly/figure_factory/_dendrogram.py 可以看到figure factory 通过optional_imports.get_module按需引入numpy、scipy、scipy.cluster.hierarchysch与scipy.spatialscs并在缺少 scipy 时抛出明确的ImportError提示需要安装 scipy 及其空间/层次聚类子模块。因此若你在只用 plotly.py 核心功能时这些科学计算依赖不会被强制加载但一旦使用树状图相关功能就必须确保 scipy 可用。默认 Clustergram先看最基础、开箱即用的用法。示例使用一份脑癌染色体基因表达数据集CSV 格式来自 Plotly 官方示例数据集直接传给dash_bio.Clustergramimport pandas as pd import dash_bio df pd.read_csv(clustergram_brain_cancer.csv) # 原文档示例使用 Plotly 官方数据集仓库中的该文件可下载到本地后替换为本地路径 dash_bio.Clustergram( datadf, column_labelslist(df.columns.values), row_labelslist(df.index), height800, width700 )各参数含义如下参数类型作用datapandas DataFrame / 二维 numpy 数组基因表达数据矩阵行通常对应样本或基因列对应基因或观测column_labelslist列标签热图顶部/底部树状图对应的标签示例中取自 DataFrame 的列名row_labelslist行标签热图左侧/右侧树状图对应的标签示例中取自 DataFrame 的索引heightint图形总高度像素示例为 800widthint图形总宽度像素示例为 700组件会基于这份二维数据自动完成缺失值填充 → 两两距离计算 → 层次聚类 → 热图与双侧树状图的联合渲染。定制树状图簇颜色与线宽dash_bio.Clustergram允许修改代表聚类簇的树状图 trace 颜色并配置其线宽import pandas as pd import dash_bio df pd.read_csv(clustergram_brain_cancer.csv) dash_bio.Clustergram( datadf, column_labelslist(df.columns.values), row_labelslist(df.index), height800, width700, color_list{ row: [#636EFA, #00CC96, #19D3F3], col: [#AB63FA, #EF553B], bg: #506784 }, line_width2 )参数说明color_list字典用于分别定制行树状图row、列树状图col的簇颜色以及背景色bg。row与col的值是颜色字符串列表组件会按聚类合并顺序依次取色因此列表长度应覆盖期望区分的簇数量。line_width树状图线条宽度示例设为 2。这一簇级染色的设计与 plotly.py 底层树状图实现一脉相承。查看 plotly/figure_factory/_dendrogram.py 中的get_color_dictSciPy 的scipy.cluster.hierarchy.dendrogram默认用r/g/b/c/m/y/k/w之类的单字符颜色标识每个聚类分支plotly.py 会将其映射为更美观的 RGB 配色默认映射为rgb(0,116,217)蓝、rgb(35,205,205)青、rgb(61,153,112)绿等 8 色从 scipy 1.5.0 起颜色命名改为C0~C9循环格式该函数也通过new_old_color_map将新旧命名统一映射保证不同 scipy 版本下配色一致。而line_width对应的线宽最终作用在每条树状图scattertrace 的modelines线条上。控制树状图相对尺寸display_ratio参数用于控制行树状图与列树状图相对热图的比例import pandas as pd import dash_bio df pd.read_csv(clustergram_brain_cancer.csv) dash_bio.Clustergram( datadf, column_labelslist(df.columns.values), row_labelslist(df.index), height800, width700, display_ratio[0.1, 0.7] )display_ratio长度为 2 的列表分别控制行树状图的相对高度与列树状图的相对宽度相对热图尺寸的比例。示例中[0.1, 0.7]表示行树状图高度约为热图高度的 0.1 倍、列树状图宽度约为热图宽度的 0.7 倍。调整该比例可以让热图占据更大的可视区域或将树状图放大以便观察聚类细节适合在样本/基因数量较多时按需权衡。将 Clustergram 嵌入 Dash 应用由于dash_bio.Clustergram本身就是一个 Dash 组件它可以像其他 Dash Bio 组件一样直接放进 Dash 应用的layout中。原文档以隐藏代码块的形式展示了一个在线交互示例在 Dash 官方示例站点中以 IFrame 呈现的完整可交互应用核心思路可概括为import dash from dash import html import dash_bio app dash.Dash(__name__) app.layout html.Div( dash_bio.Clustergram( datadf, column_labelslist(df.columns.values), row_labelslist(df.index), height800, width700 ) ) if __name__ __main__: app.run_server(debugTrue)将Clustergram作为 Dash 组件使用后即可借助 Dash 的回调callback机制实现交互式数据筛选、动态更新聚类结果等场景这也是原文档将该页面归类于 Dash Bio 文档体系的原因。底层原理plotly.py 中的树状图 figure factory虽然Clustergram组件属于dash_bio包但其绘图能力建立在 plotly.py 的 figure factory 之上。本仓库提供了对应的底层函数plotly.figure_factory.create_dendrogram位于 plotly/figure_factory/_dendrogram.py在 plotly/figure_factory/init.py 中导出并在 doc/python/dendrogram.md 中有专门教程。它本质上是 SciPyscipy.cluster.hierarchy.dendrogram的薄封装。核心调用链如下源码 plotly/figure_factory/_dendrogram.pyd distfun(X) # 1. 计算两两距离矩阵默认 scipy.spatial.distance.pdist Z linkagefun(d) # 2. 由距离矩阵计算链接矩阵默认 scipy.cluster.hierarchy.linkagemethodcomplete P sch.dendrogram( Z, orientationself.orientation, labelsself.labels, no_plotTrue, color_thresholdcolor_threshold, ) # 3. 生成树状图坐标与簇颜色随后 get_dendrogram_traces 将P[icoord]每个∩形树杈的 4 个 X 点与P[dcoord]4 个 Y 点逐条转换为typescatter、modelines的 trace每个聚类分支一条并按簇颜色着色最后通过graph_objs.Figure组装成完整图形。create_dendrogram的完整参数也是理解 Clustergram 聚类定制选项的底层依据参数默认值作用X必填观测矩阵二维 ndarray行数应不小于 2orientationbottom树状图方向top、right、bottom、left分别决定热图四周树状图的摆放labelsNone叶节点观测标签列表colorscale8 色默认调色板树状图簇颜色列表需要 8 种颜色第 7 种被忽略scipy1.5.0 时第 2、3、6 种会使用两次列表不足时缺失值以默认色补齐超出则忽略distfunscs.distance.pdist由观测计算两两距离的函数对应文档所述pairwise distance between observationslinkagefunsch.linkage(x, complete)由两两距离计算链接矩阵的函数对应文档所述linkage matrix默认使用 complete最大距离链接hovertextNone各树状图簇 trace 的悬停文本color_thresholdNone簇分离阈值达到或超过该相似度的分支作为独立簇着色对应文档所述user-defined threshold of similarity从方向处理的实现看plotly/figure_factory/_dendrogram.pyleft/bottom方向下 X 坐标取正、top/right下取负从而在画布上正确摆放四个方向的树状图这与测试 tests/test_optional/test_figure_factory/test_figure_factory.py 中对四种方向的断言一致如left方向tickvals 0、right方向tickvals 0。该文件中的TestDendrogram测试类还覆盖了默认树状图输出、随机矩阵、自定义colorscale灰度配色、叶节点ticktext/tickvals等场景可作为理解行为边界的参考。进一步阅读树状图的独立教程doc/python/dendrogram.md包含create_dendrogram与热图结合的完整示例figure factory 总览doc/python/figure-factories.md底层实现plotly/figure_factory/_dendrogram.py测试用例tests/test_optional/test_figure_factory/test_figure_factory.py其他 figure factory表、向量场、三角剖分等plotly/figure_factory/init.py需要说明的是dash_bio.Clustergram组件本体属于独立的 dash-bio 项目本文聚焦其在 plotly.py 生态中的角色、典型用法及其底层的树状图实现原理如果你需要自行组装热图 双侧树状图可以直接组合create_dendrogram上下/左右各一个与go.Heatmap具体做法见 doc/python/dendrogram.md 中带热图的树状图一节。赞分享数据可视化数据分析【免费下载链接】plotly.pyThe interactive graphing library for Python :sparkles:项目地址https://gitcode.com/gh_mirrors/pl/plotly.py点击查看免费下载相关推荐读懂计算机视觉学术谱系的4条主线读懂计算机视觉学术谱系的4条主线 这份计算机视觉开源资源仓库里最特别的不是资源清单而是一份学术谱系。 people.md https://link.gitc教程计算机视觉Mermaid.js树状图层级数据结构的可视化表达Mermaid.js树状图层级数据结构的可视化表达 在数据可视化领域层级关系的清晰呈现一直是信息传递的关键挑战。Mermaid.js作为一款强大的文本驱动型图表库前端数据可视化如何快速集成gbert-large-sts-openmind API德语语义相似度分析的完整指南 如何快速集成gbert large sts openmind API德语语义相似度分析的完整指南 gbert large sts openmind 是一创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

ccusage 仓库 Git Push 安全流程:分支检查、上游确认与 pre-push 钩子全解析
ccusage 仓库 Git Push 安全流程:分支检查、上游确认与 pre-push 钩子全解析

ccusage 仓库 Git Push 安全流程:分支检查、上游确认与 pre-push 钩子全解析 【免费下载链接】ccusage npx ccusage 项目地址: https://gitcode.com/gh_mirrors/cc/ccusage 本文以 ccusage 仓库内 .agents/skills/commit/references/push.md 这一技能参考文档… · 2026/9/21 1:13:33

信号与系统第六章:时域与频域特性核心解析
信号与系统第六章:时域与频域特性核心解析

简介:《信号与系统课件:第6章 信号与系统的时域和频域特性》是一份面向电子信息类相关专业本科生、考研复习者及自学者制作的PPT教学课件,内容围绕LTI系统在时域与频域中的综合特性展开,适合配合奥本海姆《信号与系统》等教材进行… · 2026/9/21 1:13:33

2026年9月知名GEO机构哪家好榜单TOP5:谁更适合你的企业一文看懂
2026年9月知名GEO机构哪家好榜单TOP5:谁更适合你的企业一文看懂

随着AI搜索时代的全面降临,传统营销的逻辑正在经历一场降维打击式的重构。知名GEO机构哪家好已成为超过68%的国内中大型企业在制定年度数字化预算时的核心关切。在DeepSeek、豆包、文心一言等生成式引擎占据用户流量入口的当下,品牌若无法在AI的“答案区… · 2026/9/21 1:12:33

Lark CLI 创意设计技能之高保真设计(Hi-Fi Design):UI Mockup 与多方案视觉探索的完整实践指南
Lark CLI 创意设计技能之高保真设计(Hi-Fi Design):UI Mockup 与多方案视觉探索的完整实践指南

CLIAI 技能 【免费下载链接】cli The official Lark/飞书 CLI tool, maintained by the larksuite team — built for humans and AI Agents. Covers core business domains including Messenger, Docs, Base, Sheets, Calendar, Mail, Tasks, Meetings, and more, with 200 co… · 2026/9/21 2:00:43

Nim 编译器 `--nimblePath` 功能全解析:从目录扫描、版本择优到 `.nimble-link` 软链接的完整测试体系
Nim 编译器 `--nimblePath` 功能全解析:从目录扫描、版本择优到 `.nimble-link` 软链接的完整测试体系

Nim 编译器 --nimblePath 功能全解析:从目录扫描、版本择优到 .nimble-link 软链接的完整测试体系 【免费下载链接】Nim Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, A… · 2026/9/21 2:00:43

DeepSeek Harness 事件分发 API 完全指南:context 中的 parallel / emit / serial / bail / waterfall
DeepSeek Harness 事件分发 API 完全指南:context 中的 parallel / emit / serial / bail / waterfall

人工智能AI AgentAgent 框架DeepSeek 【免费下载链接】deepseek-harness DeepSeek Harness: Everything is a Plugin. 项目地址: https://gitcode.com/gh_mirrors/de/deepseek-harness 点击查看 免费下载 事件系统是 DeepSeek Harness“一切皆插件”架构的神经中枢… · 2026/9/21 2:00:43

C#编译程序引用C++ DLL:C++/CLI托管动态链接库实战
C#编译程序引用C++ DLL:C++/CLI托管动态链接库实战

简介:面向C#开发者的C/CLI托管DLL互操作实例包,演示如何编译生成C托管动态链接库并在C#项目中直接引用,帮助解决跨语言程序集调用的配置与部署问题,适合企业级桌面应用、工业控制及工具软件等需要混合编程的场景。包内共154个文件… · 2026/9/21 2:00:43

Vitess 原子分布式事务设计解析:基于 2PC 的跨分片强原子提交架构
Vitess 原子分布式事务设计解析:基于 2PC 的跨分片强原子提交架构

数据库分布式数据库云原生后端数据存储 【免费下载链接】vitess Vitess is a database clustering system for horizontal scaling of MySQL. 项目地址: https://gitcode.com/gh_mirrors/vi/vitess 点击查看 免费下载 本设计文档(doc/design-docs/Atomi… · 2026/9/21 2:00:43

LibreChat:开源多模型聊天中控台与MCP Agent实战指南
LibreChat:开源多模型聊天中控台与MCP Agent实战指南

1. LibreChat 是什么?一个真正能落地的开源聊天界面,不是玩具LibreChat 是一个开源、自托管、高度可定制的聊天界面项目,它的核心定位非常清晰:做 OpenAI、Gemini、Claude 等主流大模型 API 的“统一操作台”。它不训练模型&#… · 2026/9/21 1:59:43

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化
Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡… · 2026/9/21 0:02:39

Word表格编号全攻略:从列表编号到题注交叉引用
Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技… · 2026/9/21 0:02:39

从第一个站到第二个站:独立开发者的静态网站选型与落地实践
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&… · 2026/9/20 0:00:41

Claude Code 按智谱AI指南装完,ANTHROPIC_BASE_URL 改走 TaoToken 兼容通道行不行
Claude Code 按智谱AI指南装完,ANTHROPIC_BASE_URL 改走 TaoToken 兼容通道行不行

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/21 0:00:18

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程
agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and … · 2026/9/21 0:00:18

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,… · 2026/9/21 0:00:18

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码