如何用matplotlib绘制图片
在如今信息爆炸的时代,如何让大量的信息汇聚于一张小小的图表,让人一目了然地作出判断,轻松传达出复杂的观点将是数据工作者的首要命题。善其事,必先利其器。matplotlib就是一款python可视化的利器。matplotlib在手,画图我有。
基本介绍
那么我们来看一下matplotlib有哪些经典的图表吧?
比较火的单细胞处理分析Scanpy 利用matplotlib将多个基因的小提琴图规则美观的合并在一起。
Deeptools 经典的heatmap和lineProfile可是由谷歌团队使用matplotlib 精心打造的哟~~
三维基因组神器GenomeTrack,利用matploltlib完美的对多组学进行联合可视化比较。
除此之外,我们自己也可以用matplotlib打造一些集优雅与知性与一身的图表哦~~
如何入门
既然了解了matplotlib(https://matplotlib.org/gallery/index.html)能干啥,那么我们如何入手matplotlib呢?那么就需要从两大块一是基本图表 ,二是布局,画图就好比摆盘,图表就好比食材,而布局就好比你需要构思把食材摆放在哪里。
基本图形
首先谈谈基本图表,matplolib提供的基本图形如下。
要看matplotlib涵盖的所有基本图形的语法,这就需要你没事去matplotlib的官网里溜溜,看看它的仓库(https://matplotlib.org/gallery/index.html#gallery)都有啥。
matplotlib基本的图表元素包括 Figure,title,legend,ticks,labels(如下图)
那么,这些元素具体是怎么对应图表的呢?大家来看下面这个“栗子”~~
首先第一步,在你的python脚本中导入matplotlib包。
import matplotlib as mpl
mpl.use('Agg')
from matplotlib import pyplot as plt
plt.style.use('ggplot')
第二步,进行简单布局~~
fig=plt.figure()
ax=fig.add_axes([0.1,0.1,0.8,0.8],axisbg='w')
第三步,画一个基本图形~~
x = np.arange(-5, 5, 0.01)
y1 = -5xx + x + 10
y2 = 5xx + x
ax.plot(x, y1, x, y2, color='black’)
ax.fill_between(x, y1, y2, where=y2 >y1, facecolor='yellow', alpha=0.5)
ax.fill_between(x, y1, y2, where=y2 <=y1,facecolor='red', alpha=0.5)
ax.set_title('Fill Between')
如此一个简单的图表就产生了.......
第四步:保存图表(pdf和png格式)
fig.savefig(“xxx.pdf”)
fig.savefig(“xxx.png”)
基础函数和参数
知道了如何用matplotlib来生成一个简单的图表,我们来细看一下其他主要图表的基础函数和参数吧~~
散点图:
柱状图:
热图:
箱式图:
hlines:
基本布局
看了基本图表,我们看看matplotlib 的第二大块——基本布局:
其一,你可以通过add_axes来放置你的图表,通过left,bottom确定子图左下角的点在整个图的位置,以左下角的点向右(width)向下延伸(height)来确定图的大小。更详细的可以看一下这一篇文章https://blog.csdn.net/helunqu2017/article/details/78662877
其二:对于复杂布局而言,gridspec 简直好用的不能再好用了!
而且官网的说明简直不能再详细了!(https://matplotlib.org/tutorials/intermediate/gridspec.html#sphx-glr-tutorials-intermediate-gridspec-py)
总结
matplotlib的两大模块就简单介绍到这里,细节的话容我后续一一道来~~
作者:biofan
审稿:童蒙
编辑:amethyst