美文网首页
【可视化】Python数据可视化之matplotlib篇

【可视化】Python数据可视化之matplotlib篇

作者: XuningFan | 来源:发表于2020-03-05 14:16 被阅读0次

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

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

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

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

3.三维基因组神器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 = -5*x*x + x + 10 

y2 = 5*x*x + 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的两大模块就简单介绍到这里,细节的话容我后续一一道来~~

相关文章

网友评论

      本文标题:【可视化】Python数据可视化之matplotlib篇

      本文链接:https://www.haomeiwen.com/subject/heptrhtx.html