为你的数据添加置信区间

欢迎关注”生信修炼手册”!

在数据可视化时,除了展示数据的某个具体指,其置信区间也具有非常重要的参考意义,下图是一个典型的线性回归的拟合结果

涂色的蓝色直线表示的是线性回归的预测值,浅蓝色区域则是由每个预测值的置信区间构成,在matplotlib中, 可以通过fill_between系列函数来实现图中的置信区间的展示效果。

具体的,该系列包含了fill_between和fill_betweenx两个函数,其中,fill_between函数用于在两个水平曲线之间进行填充,fill_betweenx用于在两条数值区间之间进行填充,  两个函数的参数完全一致。

以fill_between函数为例,用法如下

>>> import numpy as np
>>> x = np.arange(4)
>>> y1 = x + 1
>>> y2 = x -1
>>> plt.fill_between(x, y1, y2)
>>> plt.plot(x, y1, 'go')
>>> plt.plot(x, y2, 'go')
>>> plt.fill_between(x, y1, y2)

输出结果如下

fill_between函数有x, y1, y2这3个基本参数,其中通过(x, y1)指定了第一条水平线,(x, y2)指定了第二条水平线,然后在两个水平线之间进行填充。为了方便理解,在图中用绿色的点标记出了对应的点的位置。

其中,y2参数是有默认值的,其默认值为0, 所以只提供两个参数也是可以的

>>> plt.fill_between(x, y1)

输出结果如下

在实际使用中,fill_between主要有两种使用场景

1. 添加置信区间

用法如下

>>> N = 21
>>> x = np.linspace(0, 10, 11)
>>> y = [3.9, 4.4, 10.8, 10.3, 11.2, 13.1, 14.1, 9.9, 13.9, 15.1, 12.5]
>>> a, b = np.polyfit(x, y, deg=1)
>>> y_est = a * x + b
>>> y_err = x.std() * np.sqrt(1/len(x) + (x - x.mean())**2 / np.sum((x - x.mean())**2))
>>> plt.plot(x, y , 'o')
>>> plt.plot(x, y_est, '-')
>>> plt.fill_between(x, y_est - y_err, y_est + y_err, alpha = 0.2)

输出结果如下

2. 填充曲线下面积

用法如下

>>> x = np.arange(0.0, 1, 0.005)
>>> y = np.sin(np.pi * x)
>>> plt.fill_between(x, y, alpha = 0.6)
>>> plt.plot(x, y)

输出结果如下

通过fill_between系列函数,可以实现面积填充的功能,无论是绘制置信区间,还是曲线下面积,都可以轻松实现。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

  更多精彩

  • KEGG数据库,除了pathway你还知道哪些

  • 全网最完整的circos中文教程

  • DNA甲基化数据分析专题

  • 突变检测数据分析专题

  • mRNA数据分析专题

  • lncRNA数据分析专题

  • circRNA数据分析专题

  • miRNA数据分析专题

  • 单细胞转录组数据分析专题

  • chip_seq数据分析专题

  • Hi-C数据分析专题

  • HLA数据分析专题

  • TCGA肿瘤数据分析专题

  • 基因组组装数据分析专题

  • CNV数据分析专题

  • GWAS数据分析专题

  • 2018年推文合集

  • 2019年推文合集

  写在最后

转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。

扫描下方二维码,关注我们,解锁更多精彩内容!

一个只分享干货的

生信公众号


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部