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

R语言160×3矩阵转ggplot热图可用数据及x()报错解决

解决方案

报错原因

你代码中使用的x()是R的函数调用语法,当前环境中不存在名为x的函数因此触发报错,你需要提取矩阵的列数据,不需要在变量名后加括号。

数据处理与绘图步骤

你现有的160×3矩阵(三列分别对应x、y、z值)本身就满足geom_tile的输入要求,不需要额外做循环生成bin,仅需做简单的格式转换即可:

  • 第一步:加载依赖包,仅需ggplot2即可实现需求
library(ggplot2)
  • 第二步:将矩阵转换为ggplot可识别的数据框格式,并匹配你写的aes参数名称
# 请将代码中的mat替换为你自己的160×3矩阵变量名
df <- as.data.frame(mat)
colnames(df) <- c("X", "y", "Z")
  • 第三步:执行绘图命令,注意补充geom_tile图层才能绘制瓦片热图
ggplot(df, aes(X, y, fill = Z)) +
  geom_tile()

额外场景说明

如果你后续拿到的是160×160的宽格式z值矩阵(行对应y坐标、列对应x坐标、单元格值为z),可使用如下代码转成符合要求的长表:

library(tidyr)
# 请将wide_mat替换为你自己的宽格式矩阵变量名
df <- as.data.frame(wide_mat) %>%
  # 生成y坐标值
  mutate(y = 1:nrow(.)) %>%
  # 宽转长
  pivot_longer(cols = -y, names_to = "X", values_to = "Z")
# 将默认生成的X列字符转为数字坐标
df$X <- as.integer(sub("V", "", df$X))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:08