gpt-4o+deepseek+R生成热力图表

参考文献:

https://www.bilibili.com/video/BV1LQRnYcECS/?spm_id_from=333.337.search-card.all.click&vd_source=80131b0637928aecfc4f4ea0c4fe5ad5

https://mp.weixin.qq.com/s/cWAhrMg1W2X0z38RZ_K5Ag

加载必要的包

library(corrplot)

library(ggplot2)

设置随机种子以保证结果可重现

set.seed(123)

创建模拟数据 - 生成9个变量(A到I)的100个观测值

n <- 100

A <- rnorm(n)

B <- A + rnorm(n, sd = 0.5)

C <- -0.4*A + rnorm(n, sd = 0.8) # 与A负相关

D <- rnorm(n)

E <- 0.7*B + rnorm(n, sd = 0.6)

F <- 0.3*D + rnorm(n, sd = 0.9)

G <- 0.5*E + 0.3*F + rnorm(n, sd = 0.7)

H <- rnorm(n)

I <- -0.4*A + 0.3*H + rnorm(n, sd = 0.8) # 与A负相关

创建数据框

data <- data.frame(A, B, C, D, E, F, G, H, I)

计算相关性矩阵

cor_matrix <- cor(data)

手动调整一些相关性以匹配描述中的模式

确保某些变量有较强的负相关性

cor_matrix"A", "C" <- -0.46

cor_matrix"C", "A" <- -0.46

cor_matrix"A", "I" <- -0.44

cor_matrix"I", "A" <- -0.44

cor_matrix"C", "E" <- -0.42

cor_matrix"E", "C" <- -0.42

增强一些正相关性

cor_matrix"B", "E" <- 0.75

cor_matrix"E", "B" <- 0.75

cor_matrix"E", "G" <- 0.68

cor_matrix"G", "E" <- 0.68

方法1: 使用corrplot包创建高级相关性矩阵图

corrplot(cor_matrix,

method = "color", # 使用颜色表示相关性

type = "upper", # 只显示上三角

order = "original", # 保持原始顺序

diag = TRUE, # 显示对角线

tl.cex = 0.8, # 标签字体大小

tl.col = "black", # 标签颜色

number.cex = 0.7, # 数字字体大小

addCoef.col = "black", # 系数颜色

col = colorRampPalette(c("red", "white", "green"))(100), # 颜色渐变

mar = c(0, 0, 1, 0), # 边距

title = "9×9 相关性矩阵热图")

方法2: 使用ggplot2创建更基础的热图

library(reshape2) # 用于数据重塑

将相关性矩阵转换为长格式

melted_cor <- melt(cor_matrix)

创建ggplot热图

ggplot(data = melted_cor, aes(x = Var1, y = Var2, fill = value)) +

geom_tile(color = "white") +

scale_fill_gradient2(low = "red", high = "green", mid = "yellow",

midpoint = 0, limit = c(-1, 1), space = "Lab",

name="相关性") +

geom_text(aes(label = sprintf("%.2f", value)), size = 3) +

theme_minimal() +

theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +

labs(title = "9×9 相关性矩阵热图", x = "", y = "") +

coord_fixed()

方法3: 使用基础R的热图函数

heatmap(cor_matrix,

col = colorRampPalette(c("red", "white", "green"))(100),

symm = TRUE, # 对称矩阵

margins = c(10, 10),

main = "相关性矩阵热图")

打印数值矩阵

print("相关性矩阵数值:")

print(round(cor_matrix, 2))

分析显著的相关性

cat("\n显著的正相关性 (r > 0.5):\n")

high_pos <- which(cor_matrix > 0.5 & cor_matrix < 1, arr.ind = TRUE)

for(i in 1:nrow(high_pos)) {

if(high_posi,1 < high_posi,2) { # 避免重复

cat(sprintf("%s - %s: %.2f\n",

rownames(cor_matrix)high_pos\[i,1],

colnames(cor_matrix)high_pos\[i,2],

cor_matrixhigh_pos\[i,1, high_posi,2]))

}

}

cat("\n显著的负相关性 (r < -0.3):\n")

high_neg <- which(cor_matrix < -0.3, arr.ind = TRUE)

for(i in 1:nrow(high_neg)) {

if(high_negi,1 < high_negi,2) { # 避免重复

cat(sprintf("%s - %s: %.2f\n",

rownames(cor_matrix)high_neg\[i,1],

colnames(cor_matrix)high_neg\[i,2],

cor_matrixhigh_neg\[i,1, high_negi,2]))

}

}

保存相关性矩阵为CSV文件

write.csv(cor_matrix, "correlation_matrix.csv")

保存图形

png("correlation_plot.png", width = 800, height = 800)

corrplot(cor_matrix,

method = "color",

type = "upper",

diag = TRUE,

tl.cex = 0.8,

tl.col = "black",

number.cex = 0.7,

addCoef.col = "black",

col = colorRampPalette(c("red", "white", "green"))(100),

mar = c(0, 0, 1, 0),

title = "9×9 相关性矩阵热图")

dev.off()

cat("\n图形已保存为 'correlation_plot.png'")

cat("\n数据已保存为 'correlation_matrix.csv'")

5.后续可进行对比分析

相关推荐
Wang's Blog几秒前
Java框架 SpringCloud 快速入门: 服务拆分案例 Demo
java·开发语言·spring cloud
小小龙学IT16 分钟前
Python SQLAlchemy 2.0 深度解析:从 Core 到 ORM 的数据访问双引擎
开发语言·数据库·python
DongQiShanRen39 分钟前
裁决台账双向互校(上):名册与实物的第一道对账
java·linux·运维·数据库·人工智能·自然语言处理·数据挖掘
ShineWinsu43 分钟前
对于Redis:AOF持久化的解析
linux·数据库·redis·缓存·面试·持久化·aof
仍然.1 小时前
Redis---集群
数据库·redis·缓存
Allstar_431 小时前
DV/PV 验证管理:为量产放行提供完整证据链——全星研发项目管理 APQP 软件系统汽车电子行业专业级研发项目管理平台
数据库·汽车
cpolar技术支持1 小时前
Spring Boot 接口本地正常,异地前端却报跨域?用 cpolar 跑通 CORS 预检与白名单
java·springboot·cpolar·前后端分离·cors
wuminyu1 小时前
Virtual Thread重投递至ForkJoinPool任务队列过程解析
java·linux·c语言·jvm·c++
小范的技术工坊1 小时前
向量数据库解决了什么问题?
数据库
小蒜学长1 小时前
在线保险服务与管理平台的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·服务平台·在线保险