微信扫码
添加专属顾问
我要投稿
利用DeepSeek和Rstudio轻松绘制科研图表,本文带你一探韦恩图的多样式绘制技巧。核心内容:1. DeepSeek推荐绘制韦恩图的R包选择2. 使用ggVennDiagram绘制多种分组样式韦恩图的具体步骤3. DeepSeek生成的绘图代码和测试数据导入Rstudio的实际操作
之前,在DeepSeek绘制8种常见的科研图表》" data-itemshowtype="0" target="_blank" linktype="text" data-linktype="2">《使用DeepSeek绘制8种常见的科研图表》、《如何使用DeepSeek绘制添加基因标签的火山图?》、《如何使用DeepSeek进行相关性分析和“星号”标记热图绘制》等文章中为大家介绍了如何使用DeepSeek+Rstudio绘制箱形图、柱状图、小提琴图、热图、火山图等多种常见的科研图表,非常受欢迎!
接下来,继续看下如何使用DeepSeek+Rstudio绘制多种样式的韦恩图!
1.绘图R包的查找与选择
首先,我们在绘制韦恩图之前可以提出自己的需求,让DeepSeek推荐适合的R包。选择深度思考(R1)模式后,在DeepSeek中尝试输入指令:
推荐3个绘制韦恩图的R包,要求生成的韦恩图样式多并支持保存成矢量图,优先推荐基于ggplot2的R包
DeepSeek官方链接:
https://www.deepseek.com/
经过20秒的深度思考,给出了3个推荐的R包。注意,我们可以仔细阅读一下DeepSeek的整个思考过程,可确保限定条件的准确,同时也可以让我们发现提示词的优化方向。
DeepSeek给出的推荐结果如下,推荐理由也比较详细。
根据DeepSeek给出的结果发现,ggVennDiagram支持2-7个集合的韦恩图,样式最多;完全基于ggplot2语法体系,可无缝衔接ggplot2的主题系统和图形调整,个性化调整空间最大;同时支持导出PDF/SVG等矢量格式,满足期刊发表需求。因此,最终我们选择ggVennDiagram进行绘图。
2.使用ggVennDiagram绘制韦恩图
接下来,在DeepSeek对话窗口中输入绘图指令,要求生成使用ggVennDiagram绘制多种分组样式的韦恩图的代码,代码中要包含R包安装和测试数据生成部分。
尝试输入绘图指令:
使用ggVennDiagram绘制韦恩图,要求给出生成测试数据和依次绘制3分组、4分组、5分组、7分组四种样式韦恩图的代码,代码中要包含所需R包的安装部分,绘图使用分组配色方案为:
"#699ECA","#FF8C00","#F898CB","#4DAF4A","#D65190","#731A73","#0098B2"
当然也可以在DeepSeek上传自己的数据,DeepSeek支持Excel文件、逗号分隔的文本文件(CSV)、制表符分隔的文本文件等。只需将示例数据文件直接复制粘贴到对话框中即可上传文件,当然也可点击“曲别针”上传附件。
经过22秒的深度思考,给出了绘图代码。注意,我们可以仔细阅读一下DeepSeek的整个思考过程和给出的代码,可确保作图数据导入正确,同时也可以让我们发现提示词的优化方向。
点击以上代码块右上角的“复制”按钮,将DeepSeek生成的代码复制粘贴到Rstudio的脚本编辑器中进行尝试运行,如下图。
然后继续运行代码,可以发现所需的R包可以安装成功但最终绘图过程出错,我们可以让DeepSeek继续优化代码。
3.使用DeepSeek调整绘图代码
继续输入优化代码指令:
给出使用ggVennDiagram绘制3分组、4分组、5分组、7分组四种样式韦恩图的代码,要求包含所需R包的安装、测试数据的生成和保存、每种样式韦恩图的展示和详细参数说明,绘图使用的分组配色方案为:"#699ECA","#FF8C00","#F898CB", "#4DAF4A","#D65190","#731A73","#0098B2"
仔细阅读思考过程可以发现,DeepSeek对上文提到的两个要求进行了优化,并在之前代码的基础上修改,如下图。
继续点击以上代码块右上角的“复制”按钮,将DeepSeek生成的代码复制粘贴到新的脚本编辑器窗口中进行运行,新代码的运行效果如下图。
注意,给出的代码也很可能会报错,这时只需提供报错信息给DeepSeek,继续优化代码即可!
报错时代码优化指令参考:
生成测试数据部分代码报错,请在上文代码的基础继续优化,报错信息如下:Error in sample.int(length(x), size, replace, prob) :
'replace = FALSE',因此不能取比总体要大的样本
优化后的代码部分:
替换这部分代码后继续在Rstudio中运行代码,绘图效果如下。当然,你也可以在Rstudio中继续调整绘图参数,直到得到你想要的效果,比如,这里调整配色参数进行了修改,因为ggVennDiagram的填充颜色为渐变色。
在此基础上,甚至也可以尝试单一填充颜色的效果:
参考绘图代码与绘图效果:
# 1. 安装和加载包 --------------------------------------------------
if (!require("ggVennDiagram")) install.packages("ggVennDiagram")
if (!require("ggplot2")) install.packages("ggplot2")
library(ggVennDiagram)
library(ggplot2)
# 2. 定义7色配色方案 -----------------------------------------------
custom_colors <- c("#699ECA", "#FF8C00", "#F898CB", "#4DAF4A",
"#D65190", "#731A73", "#0098B2")
# 3. 生成测试数据函数 ----------------------------------------------
# 生成测试数据函数(优化版)---------------------------------------------
generate_test_data <- function(n_sets) {
set.seed(123)
data <- lapply(1:n_sets, function(i) {
# 动态扩展数据范围(确保样本量 <= 总体数量)
base_range <- 150# 基础范围跨度
start <- 100*i - (base_range + 20*i) # 动态左边界
end <- 100*i + (base_range - 20*i) # 动态右边界
valid_range <- start:end
# 计算最大允许样本量
max_sample_size <- length(valid_range)
sample_size <- min(80 + 20*i, max_sample_size) # 安全取样
sample(valid_range, size = sample_size, replace = FALSE)
})
names(data) <- LETTERS[1:n_sets]
return(data)
}
#1. 3分组韦恩图
# 生成数据
venn3_data <- generate_test_data(3)
# 绘制图形
venn3_plot <- ggVennDiagram(
venn3_data,
set_color = custom_colors[1:3],
category.names = c("Group A", "Group B", "Group C"), # 自定义组名
edge_size = 0.5, # 集合圆圈边框粗细
label = "both", # 同时显示数值和百分比
label_alpha = 0, # 标签背景透明度
label_size = 4 # 标签文字大小
) +
scale_fill_gradient(low = "#F898CB33",high = "#F898CB99") + # 使用前3色
theme_void() + # 纯净背景
theme(plot.title = element_text(hjust = 0.5)) # 标题居中
# 展示图形
print(venn3_plot)
# 保存矢量图
ggsave("venn3.pdf", plot = venn3_plot,
width = 8, height = 6, device = cairo_pdf)
#2. 4分组韦恩图
venn4_data <- generate_test_data(4)
venn4_plot <- ggVennDiagram(
venn4_data,
set_color = custom_colors[1:4], # 集合圆圈边框颜色
label_alpha = 0,
edge_size = 0.5,
label = "count",
label_percent_digit = 1, # 百分比小数位数
label_txtWidth = 30 # 标签换行宽度(字符数)
) +
scale_fill_gradient(low = "#F898CB00",high = "#F898CB99") + # 颜色渐变填充
theme(legend.position = "none") # 图例位置调整
print(venn4_plot)
ggsave("venn4.svg", plot = venn4_plot, width = 9, height = 7)
#3. 5分组韦恩图
venn5_data <- generate_test_data(5)
venn5_plot <- ggVennDiagram(
venn5_data,
set_color = custom_colors[1:5], # 集合圆圈边框颜色
edge_size = 0.5,
label_color = custom_colors[1],
label = "count",
label_size = 4,
label_alpha = 0,
set_size = 5
) +
scale_fill_gradient(low = "#F898CB00",high = "#F898CB99") +
theme(legend.position = "none") # 图例位置调整
print(venn5_plot)
ggsave("venn5.eps", plot = venn5_plot, width = 10, height = 8)
#4. 7分组韦恩图
venn7_data <- generate_test_data(7)
venn7_plot <- ggVennDiagram(
venn7_data,
set_color = custom_colors[1:7], # 集合圆圈边框颜色
edge_size = 0.5,
label_color = custom_colors[1],
label = "count",
label_size = 3,
label_alpha = 0,
order.intersect.by = c("none"),
order.set.by = c("none"),
set_size = 5
) +
scale_fill_gradient(low = "#F898CB00",high = "#F898CB99") +
theme(legend.position = "none") # 图例位置调整
print(venn7_plot)
ggsave("venn7.pdf", plot = venn7_plot, width = 12, height = 10)
综上,DeepSeek在辅助R语言绘图上非常方便,特别是在在提高代码编写效率上!但如果你觉得学习写代码太麻烦,我还是推荐直接使用OmicShare tools在线工具进行科研图表的绘制!只需上传数据点击提交按钮即可轻松完成图表的绘制,如果对图形样式不满意,还可以实时在线调整!
OmicShare动态韦恩图工具与示例数据链接:
https://www.omicshare.com/tools/home/report/reportvenn.html
好啦,本次的DeepSeek绘制韦恩图范例教程就分享到这里啦!如果需要范例数据进行练习,可直接下载OmicShare的动态韦恩图工具的示例文件。
基迪奥生物不仅提供转录、翻译、蛋白、代谢、表观、微生物等常规组学服务,还拥有空间组学和单细胞等多种前沿技术,以及行业内最专业的开发团队和长达十几年的成果积累,始终专注于组学测序和生信分析,为不同领域研究人员提供最优的组学研究策略。欢迎有项目意向的老师扫描下方二维码填写信息,基迪奥为您定制个性化项目执行方案。
识别下方二维码咨询:
咨询当地销售或拨打客服电话:
READ MORE
延伸阅读
*未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。
基迪奥旗下绘图公众号
分享科研绘图技能与工具
欢迎关注与转发~
你的好友拍了拍你
并请你帮她点一下“分享”~
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-05-11
公开整个AI小说创作流程,软件流程化成功,AI率14%
2025-05-11
VS Code 1.100 重磅发布:AI 功能全面升级,开发体验大幅提升!
2025-05-11
Apache BookKeeper核心技术解析:高可用读写协议、类结构与容错设计
2025-05-10
全球最流行 MCP 应用市场,来自一位中国独立开发者
2025-05-09
全面拥抱 AI,Figma 发布 2025年度重磅升级
2025-05-08
扣子空间初体验:对标 Manus 的惊喜发现
2025-05-08
AI Agents入门教程之五种智能体工作流设计模式
2025-05-08
AI编程神器Cursor对学生免费!
2025-03-06
2024-09-04
2025-01-25
2024-09-26
2024-10-30
2024-09-03
2024-12-11
2025-03-12
2024-12-25
2024-10-30
2025-05-11
2025-05-06
2025-04-29
2025-04-25
2025-04-22
2025-04-16
2025-04-15
2025-04-13