c#读取excel两列数据并绘制xy曲线_如何用Graphpad Prism绘制超复杂组合图?

上周生信大神谢老师在基迪奥生信交流群展示了一张用R语言绘制的组合图,令群内无数粉丝疯狂不已。这张图是这样子的:

fd2f6b833f9e1371ee7da30da904ad44.png

对于我来说,绘制这张图的难点是如何将3张图组合到一起,而且“右图”的绘制方向与“上图”相反才能和主图(散点图)的坐标轴一致。此外还有直方图和累计频率点线图的组合、Offset axis、全画布辅助线的添加、图例的添加等,如果不精通R的绘图函数,寸步难行! 

febc3877325fe270b9cd1a72ee9d614f.png

那么,除了R语言,常规的作图软件比如Prism可以做到吗?

于是,找谢老师要了范例数据准备验证一下。顺便讲一下,如果大家对全基因组关联分析(GWAS)感兴趣可以点击阅读原文前往Omicshare课堂观看谢老师的系列视频教程。

我的作图思路是:分别绘制“主”、“上”、“右”三个图表,然后把三个工程文件merge成1个,使用Prism的layout功能将三个图表组合在一起,最后手动添加辅助线、图例即可。下面就一起看下如何绘制吧!

“主图”绘制

数据准备的准备很简单,只需π_poolA/π_poolB和Fst这两列数据即可,然后筛选出π_poolA/π_poolB≥1.174且Fst≥0.069的数据,以及其余数据。为了方便快速演示,我这里仅选取了3万个位点数据。如果不会筛选作图数据,可参考《如何使用Excel对数据进行筛选?》一文的方法。

35d1c8ec464f3df141d4414442a1251c.png

然后,将数据复制粘贴到Prism的XY表格中,绘制XY分组散点图即可,数据表格的样式如下:

b7f8ad1b6a314553c6000a3a8d4b42b6.png

如果不会画分组散点图,可以参考《Graphpad Prism能不能画火山图?》或《Graphpad Prism能不能画九象限图?》的作图方法。如果不想看图文教程,也可以点击阅读原文前往Omicshare课堂观看视频教程。最终绘制的主图如下:

16206848827465cb4f14f7da6a7afc75.png

“上图”绘制

接着新建一个工程文件,新建Column型的表格,将π_poolA/π_poolB这列数据复制粘贴到表格中,然后点Analyze按钮,做2次频率分布分析。

afe7270e7a0f02bc3d4705a3fe611eb6.png

参数设置如下,注意将两次分析的Bin width(可理解为组距)都设置为0.01,至于为什么是0.01,可根据数据的分布范围估计,保证Bin的数量约200个左右,这样画出的“密度”曲线比较光滑。

d6f6e9038aac019115044fd3ba1bee12.png

然后新建1个XY表格,将两次分析的结果合并到一个表中,并依据π_poolA/π_poolB≥1.174将频率直方图的数据分成两组,用以实现直方图的分组着色效果,方法类似分组散点图,数据准备如下。

e5fe35ea06f693a26505d57e6022deba.png

然后,在Graph选项下,图表类型选XY的Spikes,如下,你可能会问:为什么不是柱状图呢?因为柱状图的X轴的范围无法自定义。

4592f5df6d091a737796df8532babdaf.png

接下来需要对图表进行个性化设置,比如将直方图和点线图的数据映射到两个Y轴上,设置X轴的长度、范围与主图的X轴一致等(如下),具体操作看之前系列的教程,这里不再赘述。

5d84fe4e88e6ea47f85d270377ecb157.png

为了之后方便拼图,这里暂时不隐藏X轴,删掉图例,“上”图的绘制效果如下:

74ee16b29be776b84ebd4075da29d37a.png

“右图”绘制

方法与上图绘制一样,新建Column型的表格,将Fst这列数据复制粘贴到表格中,然后点Analyze按钮,Bin width设置为0.01,做2次频率分布分析。然后,合并分析数据作图如下:

42468fc87e488e904cb34eac23ee2d63.png

很明显,如果放置在主图的右侧,顺时针旋转90°,图表的原点在图表的左上角,无法和主图一一对应。那么如何让原点处于图表右下角呢?Prism虽有原点位置设置功能,试了下,让人吐血。只能手动改变横坐标顺序了,“你不动,我动!” 唉,期待Prism 9 XY型数据也能横向绘制图表吧!

按照主图Y轴的范围,裁剪掉多余的数据(非常重要!),然后将X轴的数据,复制到Excel中降序排列后再粘贴回Prism即可快速完成顺序颠倒,手动修改刻度标签后效果如下:

7790c57e82360f6b5dc51023a2a03c6b.png

至于为什么用Excel,那是因为Prism无法只对一列排序而其他列不动!

图表组合

终于到了最后一步,先通过file/Merge,将3个工程文件合并成一个,当然在合并之前你也可以复制一份,并将之前一些中间分析结果、图表删掉。合并文件后,在Layouts选项下,新建空白的布局,如下:

94d047c845b24a0ad25820ace18e5f36.png

从左侧导航栏把依次将3个图表拖到Layout1画布中,并右键“右图”,顺时针旋转90°,排列好之后使用Draw选项下的直线工具绘制虚线,如下。

a829871964d1a3cdee5d28e43057b115.png

回到单个图表中隐藏掉X轴,以及主图的辅助线,即可完成图表的组合,如下,满意后导出图片即可。

fa25d85ef9bd82fac102121e606a2cf9.png

如果使用全部(10万多个)位点的数据,虽然没有Origin那样的Fast模式,Prism也能抗的住,绘制效果如下图,不过你可能需要一些耐心!

b8b3a685197abc708316550f45711b60.png

最终的绘制效果如下:

8b648499d739f53b56a63d3441211f74.png

最后,如果你还是没学会,那么你可能需要点击阅读原文,观看前天刚上线的Graphpad Prism科研作图系列视频教程,好啦,今天的内容就到这里啦!

现在原价200元的课程,新上线一周优惠!仅需129元!VIP会员免费看!

视频观看方式

电脑端: 欢迎登录Omicshare课堂 ( www.omicshare.com/class )观看; 手机端: 可通过点击 或基迪奥生物微信公众号底部菜单栏  视频教程  进行观看。

拓展阅读

《如何使用Excel对数据进行筛选?》

《Graphpad Prism能不能画火山图?》

《Graphpad Prism能不能画九象限图?》

f37373f33a6c9014dabef2a41b51ae97.png

d83283aff41711260ada0a85081968ee.png

实用科研工具推荐      
详实生信软件教程分享
前言创新组学文章解读
独家生信视频教程发布

536a3c7b2e91f790b74a34bf2f778f45.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值