查看原文
其他

如何用matplotlib绘制图片

生信阿拉丁 生信阿拉丁 2022-05-16
点击“蓝字”关注我们更多!


在如今信息爆炸的时代,如何让大量的信息汇聚于一张小小的图表,让人一目了然地作出判断,轻松传达出复杂的观点将是数据工作者的首要命题。善其事,必先利其器。matplotlib就是一款python可视化的利器。matplotlib在手,画图我有。



基本介绍

那么我们来看一下matplotlib有哪些经典的图表吧?

  1. 比较火的单细胞处理分析Scanpy 利用matplotlib将多个基因的小提琴图规则美观的合并在一起。

  1. Deeptools 经典的heatmap和lineProfile可是由谷歌团队使用matplotlib 精心打造的哟~~

  1. 三维基因组神器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

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存