前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【实战教学】学姐手把手教你用ChatGPT完美复现CNS图表!

【实战教学】学姐手把手教你用ChatGPT完美复现CNS图表!

作者头像
用户11203141
发布2025-03-06 10:55:17
发布2025-03-06 10:55:17
7300
代码可运行
举报
运行总次数:0
代码可运行

特别鸣谢:本期投稿来自南方医科大学的氢氧根学姐

接下来开始展示美女学姐的经验分享"如何用ChatGPT复现CNS图"

原图来自这篇Nature文章的Fig 2I

文献地址:https://www.nature.com/articles/s41586-024-07630-7

设定角色

首先,我们给GPT定义一个角色,“R语言数据可视化专家”,使得GPT聚焦特定技能:这种指定强调了R语言数据可视化这两个领域的专业技能,帮助GPT专注于相关的技术和工具,如ggplot2、plotly、lattice等R包。并告诉GPT:我期望GPT在R语言数据可视化方面表现如专家,可以让GPT调整回答的深度和技术细节,以确保信息的准确性和实用性。

明确图标类型和内容

然后,不要着急直接让GPT给出复现代码,而是让GPT解读图片类型和包含的信息,当然,你可以更加明确地指出需要关注哪些信息,比如:

图表类型:首条形图、折线图、散点图、热图、雷达图等。这有助于确定使用哪种R语言的绘图包和函数来复现。

数据信息:数据种类,如数值类型、类别类型等,数据的维度和结构,比如单变量、多变量等。

视觉元素:包括颜色使用、图例说明、标签和标题等,这些都是复现图表时需要准确掌握的细节。

附加特征:比如图中是否有错误条、数据聚合形式(平均数、中位数等)、使用的比例尺或转换(如对数尺度)等。

这个prompt提供了一个明确的任务方向和需要关注的细节,这有助于确保生成的代码能够尽可能接近原图。

选择绘图方法

前面GPT已经识别了特定的图表类型,比如条形图、散点图、折线图等,接下来的这句prompt能让GPT提供适用于R语言中的不同方法或包,来帮助你绘制指定的图表类型。

另外,像这个案例中展示的,GPT一般会给出不同的方法以及各种方法的优缺点,以便你选择最适合展示你数据的图表类型。

生成和使用测试数据

这句prompt为完成任务提供了明确的方向和执行步骤,确保输出的质量和准确性:

明确任务需求:要求在R中生成测试数据并复现图表,这要求GPT不仅提供绘图代码,还需要构造适合的示例数据。

细节规定:要求数据大小和颜色尽可能保持一致,这强调了视觉一致性的重要性,提示GPT在生成图表时需要注意细节的精确匹配。

选择具体的方法:通过指定“用方法1复现”,明确了使用哪种特定的绘图方法。

然后就可以愉快地将代码复制到Rstudio作图啦!

修改和优化

如果代码报错,直接将报错信息扔给GPT就行,它会帮你解决。

最开始,它画的图是这样的:

有点丑,我们提出修改要求让GPT帮我们修改:

如果GPT没有完全理解我们的意思,可以进行澄清:

逐步提出具体的修改需求进行优化我们的图:

最终的代码:

代码语言:javascript
代码运行次数:0
复制
# 安装并加载fmsb包
if (!require(fmsb)) {
    install.packages("fmsb")
    library(fmsb)
}
# 创建雷达图数据
# 假设每个基因有三种不同的细胞类型的表达数据
genes <- c("Prdm1", "Eomes", "Ccr7", "Cxcx3", "Cxcx4", "Cxcx5", "Cxcx6", "Cx3cr1", "Pdcd1", "Tigit", "Lag3", "Havcr2", "Sell", "Cd69", "Cd160", "Crem", "Tbx21", "Tox", "Klrg1", "Prf1", "Gzmb")
min_values <- rep(0, length(genes))  # 假设最小表达值为0
max_values <- rep(1, length(genes))  # 假设最大表达值为1
# 创建三组数据,模拟不同的细胞类型
data1 <- runif(length(genes), 0.5, 1)
data2 <- runif(length(genes), 0.3, 0.7)
data3 <- runif(length(genes), 0.1, 0.5)
# 组成最终的数据框
data <- rbind(min_values, max_values, data1, data2, data3)
# 转换为数据框并添加列名
data <- as.data.frame(data)
colnames(data) <- genes
# 定义点的颜色和填充颜色
point_colors <- c("blue", "red", "black")  # 点的颜色
fill_colors <- c(rgb(0,0,1,0.3), rgb(1,0,0,0.3), rgb(0,0,0,0.3))  # 填充颜色,透明度调至0.3
# 设置图形背景色和绘制雷达图
par(bg="white")  # 设置图形背景色为白色
radarchart(data, axistype=1, 
           pcol=point_colors,  # 点的颜色
           pfcol=fill_colors,  # 填充颜色
           plwd=2,  # 设置线的宽度更细
           plty=1,
           cglcol="grey", cglty=2, axislabcol="white", caxislabels=rep("", length(genes)),  # 将轴标签颜色设置为白色,以隐藏标签
           cglwd=0.8, vlcex=1.2)
# 添加图例,仅含有实心圆点
legend("topright", legend=c("CX3CR1+", "CXCR6+", "CXCR6+  10^8 Ad-HBV"), 
       col=point_colors, pch=19, pt.cex=1.2, 
       pt.bg=fill_colors, bty="n", cex=0.8)

最终出图:

总结GPT复现数据图6大步骤:

1.设定角色:在任务开始时,为GPT设定一个特定的角色,比如“R语言数据可视化专家”。设定角色可以帮助GPT聚焦在特定领域的专业知识和技能,从而提供更准确和专业的建议和代码。

2.明确图表类型和内容:让GPT明确需要复现的图表类型和包含的信息。明确图表的类型(如条形图、散点图、折线图等),识别图表中的数据类型和各个数据点的关系。

3.选择合适的绘图方法:询问在R语言中有哪些方法可以绘制该类型的图表。了解不同的R语言包(如ggplot2latticeplotly等)及其适用场景和优缺点,选择最适合当前需求的方法。

4.生成和使用测试数据:生成与原图表数据相似的测试数据,并用选定的方法绘制图表。确保测试数据的大小和结构与原图表一致,并在代码中保持一致的颜色和样式。

5.进行具体的修改和优化:根据需要进行具体的图表修改,如调整点的大小、修改填充色的透明度、调整网格线样式等。明确每一项具体修改的目标和预期效果,通过精细调整提高图表的视觉效果和可读性。

6.迭代和反馈:在每一步完成后进行检查和反馈,必要时进行调整。通过逐步迭代和调整,确保最终结果符合预期,并不断优化图表的各个细节。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信俱乐部 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档