大数跨境
0
0

如何进行线性回归并绘制漂亮的组合散点图?

如何进行线性回归并绘制漂亮的组合散点图? 奥智生物
2025-12-06
0
导读:DeepSeek轻松搞定!
line-height: 1.75;visibility: visible;" data-pm-slice="0 0 []" mpa-from-tpl="t">

Omicsmaster

点击蓝字 关注我们









url(from=appmsg");background-size: 100% 100% !important;background-position: 50% 50% !important;">

深度定制 让研究突破预期


之前,为大家分享过如何使用DeepSeek进行相关性热图、火山图、气泡图等特色图表的绘制,非常受欢迎!那么,使用DeepSeek能不能进行线性回归,并绘制下图这般漂亮的组合散点图?


接下来,仍以一份具体的数据为例,看下如何使用DeepSeek+Rstudio进行线性回归并绘制上图这样的组合散点图!


1.范例数据的准备

数据的整理比较简单,只需准备1个包含自己感兴趣变量的表格,一个变量对应一列,然后另存为CSV格式,如下图。注意,这里的范例数据不具有现实意义,仅供绘图使用。



2.使用DeepSeek进行分析绘图

首先,打开DeepSeek上传范例数据。将示例数据文件直接复制粘贴到对话框中即可上传文件,当然也可点击“曲别针”上传附件。



尝试输入分析绘图指令:

基于R语言对附件文件的前两列进行线性回归并绘制组合散点图;Glycosylated_hemoglobin列对应纵坐标,Glucose列对应横坐标,Group列对应分组颜色,分组颜色为:#0cbcc0#ffbc40;使用ggplot2绘制散点图并在图中添加拟合线、R方值、P value值,使用ggExtra包的ggMarginal 函数在主图(散点图)的上方和右侧添加密度曲线图,要求代码步骤分明,避免函数嵌套


DeepSeek经过11秒的深度思考,很快给出了分析绘图代码。注意,我们可以仔细阅读一下DeepSeek的整个思考过程,可检查数据是否导入正确,同时也可以确保DeepSeek正确理解我们的意图。



具体的线性回归分析及绘图代码,如下图,代码块下方为简单的代码说明。



点击以上代码块右上角的“复制”按钮,将DeepSeek生成的R代码复制粘贴到Rstudio的脚本编辑器中运行,如下图,注意在读入本地数据前,将测试数据文件所在文件夹设置为“工作目录”。



3.代码测试与分析绘图

逐行运行代码,验证分析代码是否正确,初始得到的绘图效果如下。



当然我们也可尝试将theme_minimal() 替换为theme_bw(),通过调整theme() 函数的panel.grid = element_blank() 参数,隐藏掉网格线,调整后的绘图效果如下:



同样,通过调整ggMarginal() 函数的参数 type = "histogram",也可以绘制添加直方图的效果,如下图,当然你也可以尝试添加箱型图、小提琴图等!



最终得到的结果如下图:


DeepSeek给出的代码如下:


# 1. 加载必要的包
library(ggplot2)
library(ggExtra)
library(dplyr)
library(broom)
# 2. 读取数据
data <- read.csv("testdata.csv")

# 3. 查看数据结构
str(data)
head(data)

# 4. 进行线性回归分析(按分组)
# 创建分组回归模型
day_model <- lm(Glycosylated_hemoglobin ~ Glucose, 
                data = data[data$Group == "Day", ])
night_model <- lm(Glycosylated_hemoglobin ~ Glucose, 
                  data = data[data$Group == "Night", ])

# 提取模型摘要信息
day_summary <- summary(day_model)
night_summary <- summary(night_model)

# 提取R方和P值
day_r2 <- round(day_summary$r.squared, 3)
day_p <- format.pval(coef(day_summary)[24], digits = 3, eps = 0.001)

night_r2 <- round(night_summary$r.squared, 3)
night_p <- format.pval(coef(night_summary)[24], digits = 3, eps = 0.001)

# 5. 创建散点图
# 定义颜色映射
group_colors <- c("Day" = "#0cbcc0""Night" = "#ffbc40")

# 创建基础散点图
scatter_plot <- ggplot(data, aes(x = Glucose, y = Glycosylated_hemoglobin, 
                                 color = Group, fill = Group)) +
  geom_point(alpha = 0.7, size = 2,show.legend =T) +
# 添加分组拟合线
  geom_smooth(method = "lm", se = T,alpha = 0.2, size = 1,show.legend =T) +
# 自定义颜色
  scale_color_manual(values = group_colors) +
  scale_fill_manual(values = group_colors) + 
# 添加统计信息文本
  annotate("text", x = max(data$Glucose) * 0.15, y = max(data$Glycosylated_hemoglobin) * 0.97,
           label = paste("Day: R² =", day_r2, ", p =", day_p),
           color = "#0cbcc0", size = 3.5, hjust = 0) +
  annotate("text", x = max(data$Glucose) * 0.15, y = max(data$Glycosylated_hemoglobin) * 0.92,
           label = paste("Night: R² =", night_r2, ", p =", night_p),
           color = "#ffbc40", size = 3.5, hjust = 0) +

# 添加图例和标签
  labs(
    title = "",
    x = "Glucose",
    y = "Glycosylated Hemoglobin",
    color = "",
    fill = "",
  ) +

# 美化主题
  theme_bw() +
  theme(axis.title = element_text(size = 12),
    legend.position = "none",
    panel.grid = element_blank()
  )

scatter_plot

# 6. 添加边际密度曲线
final_plot <- ggMarginal(
  scatter_plot,
  type = "density",
  groupColour = TRUE,
  groupFill = TRUE,
  alpha = 0.5
)

# 7. 显示图形
print(final_plot)

# 添加直方图
final_plot <- ggMarginal(
  scatter_plot,
  type = "histogram",
  groupColour = TRUE,
  groupFill = TRUE,
  alpha = 0.5
)

print(final_plot)

# 8. 可选:保存图形
ggsave("regression_plot_with_marginal.png", final_plot, 
       width = 10, height = 8, dpi = 300)

# 9. 输出回归模型摘要
cat("\n=== Day组回归模型摘要 ===\n")
print(summary(day_model))

cat("\n=== Night组回归模型摘要 ===\n")
print(summary(night_model))

好啦,本次的DeepSeek线性回归分析与绘图教程就分享到这里啦!



奥智团队始终坚守 “让每一分科研投入都物超所值” 的核心服务理念,从项目初期需求沟通到实验执行、数据分析,再到最终文章撰写与投稿,全程提供无障碍对接。针对不同领域、不同阶段的科研探索,奥智生物提供完善的定制化组学科研服务体系,涵盖单细胞组学、空间组学、转录组学、微生物组学、蛋白代谢组学等研究方向。欢迎有项目意向的老师联系我们,奥智生物将为您提供深度定制化的解决方案。


长按识别下方二维码咨询:


*未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。


Omicsmaster



让每一分科研投入

都物超所值


#散点图#科研绘图#生信分析#DeepSeek#R语言

【声明】内容源于网络
0
0
奥智生物
广州奥智生物科技有限公司官方账号,旨在分享前沿组学技术、实用生信技巧、数据挖掘思路,一起在科研路上打怪升级啊!
内容 68
粉丝 0
奥智生物 广州奥智生物科技有限公司官方账号,旨在分享前沿组学技术、实用生信技巧、数据挖掘思路,一起在科研路上打怪升级啊!
总阅读27
粉丝0
内容68