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

如何使用ggplot或其他R包绘制以圆形替代色块的热图

圆形热图实现方案

完全可以实现,使用ggplot2的点图层即可完成需求,本质是将矩阵的行列索引作为x、y轴坐标,数值映射到圆形的填充色(也可同时映射大小)。

完整实现代码

1. 数据预处理

首先将你的向量转为指定行列的矩阵,再转换为ggplot适配的长格式:

# 加载所需包
library(ggplot2)
library(reshape2)

# 输入你提供的counts向量
counts <- c(1949, 1690, 1935, 2480, 1441, 1141, 2079, 1587,  517, 1028,
            535, 2180, 1692, 3916, 1784, 3028, 1911, 1329, 1759, 1478,
            1080, 2835, 2187, 3230, 2932, 3527, 1538, 1489, 1493, 1170,
            3311, 4982, 4842, 4899, 1339, 3594, 2562, 1821, 1077, 1072,
            4312, 3395, 3522, 1037, 3270, 4813, 1686, 1955, 3290, 1288,
            2592, 3717,  213, 2840, 3938, 3882, 1807, 1582, 2519, 2600,
            4093, 2318, 3028, 3074, 1833, 3453, 2539, 2665, 2491, 2696,
            2819, 1177, 1707, 1832, 3223, 2366, 3742, 2648, 1594, 2112,
            2239, 2840,  414, 1094, 2621, 3116, 1939, 2847, 1781, 1054,
            1098, 1977, 1061, 2441, 2367,  723, 1126, 2550,  586,  515)

# 转为10行10列的矩阵,可根据你的实际需求修改行列数,byrow控制按行/按列填充
mat <- matrix(counts, nrow = 10, ncol = 10, byrow = TRUE)

# 转为长格式数据框
df <- melt(mat)

2. 绘制圆形热图

ggplot(df, aes(x = Var2, y = Var1)) +
  # shape=21为带边框的圆形,size控制圆形大小,fill映射数值颜色
  geom_point(aes(fill = value), shape = 21, size = 10, color = "white") +
  # 反转y轴,符合热图惯例:第一行显示在画布顶部
  scale_y_reverse() +
  # 自定义颜色方案,可替换为scale_fill_gradient2等你需要的配色
  scale_fill_viridis_c() +
  # 基础主题设置
  theme_minimal() +
  labs(x = "矩阵列索引", y = "矩阵行索引", fill = "数值大小") +
  # 去掉网格线,更接近传统热图样式
  theme(
    panel.grid = element_blank(),
    axis.text = element_text(size = 10)
  )

自定义调整说明

  • 若需要圆形大小也随数值变化:删除geom_point中固定的size=10参数,在aes中添加size = value,可搭配scale_size_continuous(range = c(3, 15))调整大小范围
  • 圆形样式调整:修改shape参数,21~25均为支持填充色+边框色的点样式,也可设置color参数修改圆形边框颜色
  • 行列标签修改:可提前给矩阵设置行名、列名,映射到x、y轴后即可显示自定义标签

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:36:03