You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用heatmaply绘制散点式聚类热图并获取相关矩阵参数?

使用heatmaply绘制散点型聚类相关系数热图的解决方案

一、直接绘制带聚类的默认散点形式热图

heatmaply支持直接通过node_type = "scatter"参数绘制散点型热图,无需依赖外部函数手动排列相关矩阵。只需配合默认的聚类逻辑(heatmaply默认启用行/列聚类),并通过point_size_mat用相关系数的绝对值控制散点大小即可:

library(heatmaply)
# 加载示例数据并计算相关矩阵
data(mtcars)
cor_matrix <- cor(mtcars)

# 绘制带聚类的散点型相关系数热图
heatmaply(cor_matrix,
          node_type = "scatter",
          # 用相关系数绝对值控制散点大小,系数10可按需调整
          point_size_mat = abs(cor_matrix) * 10,
          colors = viridis::viridis(100),
          showticklabels = c(TRUE, TRUE),
          main = "散点型聚类相关系数热图")

二、获取heatmaply内部聚类后的矩阵信息

如果需要复用heatmaply生成的聚类后矩阵排列(而非手动处理),可以通过heatmaply_build()函数提取内部聚类结果,再传入point_size_mat等参数:

# 构建heatmaply对象以获取聚类信息
hm_object <- heatmaply_build(cor_matrix)

# 提取聚类后的相关矩阵(行/列已按聚类顺序排列)
clustered_cor <- hm_object$x$data[[1]]$z
# 提取聚类后的行/列标签顺序
row_labels <- hm_object$x$layout$yaxis$ticktext
col_labels <- hm_object$x$layout$xaxis$ticktext

# 基于聚类后的矩阵生成点大小矩阵并绘图
custom_point_size <- abs(clustered_cor) * 12 # 调整点大小系数
heatmaply(clustered_cor,
          node_type = "scatter",
          point_size_mat = custom_point_size,
          row_labels = row_labels,
          col_labels = col_labels,
          colors = viridis::viridis(100),
          main = "基于heatmaply内部聚类的散点热图")

关键说明

  • heatmaply_build()返回的对象包含了所有绘图的底层信息,包括聚类后的矩阵、行/列排序、颜色映射等,完全可以替代外部函数的排列逻辑。
  • point_size_mat的缩放系数可根据视觉需求调整,数值越大散点越大,反之则越小。

内容的提问来源于stack exchange,提问作者Shanqiao Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:47:06