可视化是直观查看数据分布的有效方式,当然python也不会缺席。之前的几篇推送我们聊过目前主要的python绘图包及数据分析方法。
适用于任何学科| 10个好用的 Python数据可视化库
好看又好用的python可视化包
4种绘制带误差线的柱形图
今天的推送就探索一下基础函数的绘制方式,例如下图:
Matplotlib
Matplotlib 是第一个Python数据可视化库,是python社区中使用最广泛的绘图库。其设计风格非常类似于1980年代开发的专有编程语言MATLAB,它提供了与MATLAB命令相似的API,常见包如 pandas 和 Seaborn 都会调用matplotlib。
在官方介绍中,Matplotlib主要的图像组件可以参考下图(翻译来自网络):
安装
# 安装Matplotlib
pip install Matplotlib
# 如果出现因下载失败导致安装不上的情况,可以先启动 ss 再执行安装命令
# 或者在终端中使用代理
pip --proxy http://代理ip:端口 install Matplotlib
绘制目标:绘制以后,就会有极多的应用场景。比如解析不等式的满足区间,比较...
绘制代码
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(0.0,100.0,100)
y1 = x/4 # 曲线 y1
y2 = 50 - x # 曲线 y2
# 标注曲线
plt.plot(x, y1, label=r'$y1 = x/4$')
plt.plot(x, y2, label=r'$y2 = 50 - x$')
plt.xlim((0.0, 100.000))
plt.ylim((0.0, 100.000))
plt.xlabel(r'$X$')
plt.ylabel(r'$Y$')
# 绘制阴影部分
plt.fill_between(x, y1, y2, where=y1'grey', alpha=0.5)# 设置横轴精准刻度
plt.xticks([i for i in range(0,100,5)])# 设置纵轴精准刻度
plt.yticks([i for i in range(0,100,5)])# 注释
plt.scatter([40], [10], s=20, color="blue")
plt.annotate("(40, 10)",
xy=(40, 10),
fontsize=12,
xycoords='data') # xycoords='data' 是说基于数据的值来选位置# 图例
plt.grid(True, linestyle='-.')
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)# 保存#plt.savefig('ordering_constraints.png',dpi=300,bbox_inches='tight')
plt.show()
除了绘图,我们还使用了numpy 包,主要目的是创建一个数组 np.linspace,用于绘图。在坐标轴设置上,使用了列表生成式,批量的完成坐标点刻度分布,并绘制网格背景。注释的点和文字是要分开加的,支持字体大小、图例和颜色修改。最后保存图片可以设置像素比例,也可以直接使用 plt.show() 直接查看。整体绘图逻辑不难,需要稍微理解的一下的是绘制阴影部分的 plt.fill_between() 这个方法,修改参数既可以调整成想表达范围。
相关内容推荐
图解NumPy包一文就够了
NumPy正确食用指南
一行代码的优雅| Python列表生成式
Python语言基础50课(3)|一行代码统计序列ATCG含量
好了,今天有点像暑假作业的绘图就到这里啦。
不同的绘图包有各自的优缺点,正如Chris Moffitt 所说,matplotlib「功能非常强大,但随之而来的却是复杂性」。我们下期见。
推荐阅读
如何将pdf转换为word 3.0
使用 Python 操作 word文档
如何在 Rstudio 中使用 python 语言 (图文详解)
新冠疫情下的生信分析 | fastv
参考资料
python_matplotlib中用两种方法画线性规划图
Python 绘图,我只用 Matplotlib(二)
文末友情推荐
要想真正入门生物信息学建议务必购买全套书籍,一点一滴攻克计算机基础知识,书单在:什么,生信入门全套书籍仅需160 。如果大家没有时间自行慢慢摸索着学习,可以考虑我们生信技能树官方举办的学习班:
•数据挖掘学习班第5期(线上直播3周,马拉松式陪伴,带你入门),原价4800的数据挖掘全套课程, 疫情期间半价即可抢购。•生信爆款入门-第7期(线上直播4周,马拉松式陪伴,带你入门),原价9600的生信入门全套课程,疫情期间3.3折即可抢购。
如果你课题涉及到转录组,欢迎添加一对一客服:详见:你还在花三五万做一个单细胞转录组吗?