社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

干货分享 | 轻松绘制!用ChatGPT复现Nature插图

地研联 • 10 月前 • 144 次点击  


使用GPT4可以简单地复现科研论文中的研究图,从而应用到水文学者自己的研究中。本次复现的图表来源于Nature Communications,下图节选自文章中的Figure 1(https://doi.org/10.1038/s41467-022-29366-6)。让我们伴随本案例的学习,跟着操作,只需要简单的几个提示词,用我们的数据和提示词一起操作,利用GPT4即可轻松复现该图。类似的Nature子刊中的科研论文插图,可以直接套用本案例的步骤进行尝试。


Qi, J., Sun, H., Zhang, Y. et al. Single-cell and spatial analysis reveal interaction of FAP+ fibroblasts and SPP1+ macrophages in colorectal cancer. Nat Commun 13, 1742 (2022). https://doi.org/10.1038/s41467-022-29366-6


01

准备数据


任何良好可视化的基础都是数据集。在本教程中,我们使用论文作者提供的源数据进行复现(https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8976074/)。在Nature正刊以及子刊中,数据集往往是开放共享的,论文提供的数据集包含各张图的关键统计数据,在他们的网站上,向下滚动可以看到以下内容:




单击Source Data下载文件,文件下载后我们先把Figure 1的sheet提取出来,然后再准备好复现的截图。


提示 GPT4: “请对论文中的插图附件进行详细分析”


确定GPT4学习到了论文中的插图之后,我们再把对应的数据上传,GPT-4 界面有上传图标,使用上传文件功能来加载我们的数据集。



提示 GPT4:“接下来我要上传这张图的数据,请给我一个该数据集的概述”


GPT-4 响应:


我们可以点击代码框来看看GPT4是怎么产生结果的。


02

插图复现

现在你的GPT4学到了数据与插图,现在可以让他来复现这张图了

提示 GPT4:“请利用上传的数据,绘制第一张图的结果,堆叠条形图”


GPT-4 响应:


GPT4初步帮我们绘制了比较美观的结果,接下来让我们继续提示GPT4,把GPT4提供的代码复制到Python端进行定制修改。


03

微调图形


GPT4在绘图端的强大表现之一就是它可以进行私人定制并进行各种细节上的微调,让我们慢慢来提示GPT4,让他逐步修改并完善图片


提示 GPT4:“请设置每种颜色和最开始的图一致,调大x轴和y轴的粗细,并缩小柱图的间隔”


提示 GPT4:“继续修改代码,请让整体的画布变小一些,柱图的宽度减少一点”


提示 GPT4:“继续修改代码,只保留上面和左边的框线,删除右边和下边的框线”


提示 GPT4:“继续修改代码,让轴上的刻度数字出现在上框线”


请注意每一次提示后GPT4都会返回代码和结果图,然后我们再进行下一次提示。最终我们复制代码到本地Python端运行,代码如下:


import matplotlib.pyplot as plt
data['Sample'] = pd.Categorical(data['Sample'], categories=['p1', 'p2', 'p3', 'p4', 'p5'], ordered=True)
# Pivot the data to have samples as columns and cell types as rowspivot_data = data.pivot(index='CellTypes', columns='Sample', values='Per')
# Setting specific colors for each patient to match the initial image providedcolors = ['#00a6d0', '#00dbb0', '#ffa861', '#b000ff', '#ff0062'] # Colors for P1 to P5
# Plot the stacked bar chart with the specified colors, thicker axes, and reduced bar spacingfig, ax = plt.subplots(figsize=(6,4))pivot_data.plot(kind='barh', stacked=True, color=colors, ax=ax, width=0.6)
# Increase the line width for x-axis and y-axisax.xaxis.set_tick_params(width=2) ax.yaxis.set_tick_params(width=2)ax.spines['right'].set_visible(False)ax.spines['bottom'].set_visible(False)
ax.xaxis.tick_top()ax.xaxis.set_label_position('top')
# Set the width of the axes framefor axis in ['top', 'left']: ax.spines[axis].set_linewidth(2)
# Add title and labelsplt.title('Percentage of Cell Types across Different Patients')plt.xlabel('Percentage of cells (%)')plt.ylabel('Cell Types')plt.legend(title='Patients', bbox_to_anchor=(1.05, 1), loc='upper left')
# Show the plot with a tight layoutplt.tight_layout()plt.show()


结果如图:



让我们和论文中的图进行对比



综合对比这两张图,GPT-4复现的结果绝对是99.99%以上的还原!这展示了GPT4在科研绘图中的强大实力。因此,如果您还没用过GPT-4辅助Python编程以及绘图,用AI强大的能力辅助水文绘图,也许现在就是开始的时候了!


转载自Hydro90

文章仅代表作者观点,与本公众号无关,版权归原作者所有

原文标题:HF.076 | 轻松绘制!看我用ChatGPT复现Nature插图

图文编辑:李宜璇 连昭阳

审编:毕丝淇 兰玲

终审:张珂 徐振 姜榕 杨艺凝

猜你喜欢

  1. 地学快讯 | 2024年2月19日,《国际期刊预警名单》正式发布!附2020~2023年名单

  2. 佳文赏析 |【ESE】中国湖泊二氧化碳通量的再评估

  3. 会议通知 | 第五届《经济地理》优秀青年学者发展论坛一号通知

  4. 会议通知 | 第一届亚洲地图学会议AsiaCarto 2024(一号通知)


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/167610
 
144 次点击