欢迎关注”生信修炼手册”!
丰富的第三方模块赋予了python强大的能力,matplotlib作为python最流行的可视化模块之一, 功能强大,用法简便。对于新手而言,其上手难度低,仅需要几行代码就可以创建一个发表质量的图片,而且同时支持静态和动态图片。对于开发者而言,其丰富的子模块提供了对图片中各个细节的精确控制,可以实现高度定制的可视化效果。
在matplotlib创建的图像中,包含了多种元素,示例如下
1. figure
figure是图片的载体,可以看做是画布,图片必须在画布的基础上进行创建
2. axes
axes表示绘图区域或者窗口,用来容纳一张具体的图片。axes位于figure上,同一个figure上可以存在多个axes。
3. axis
axis表示坐标轴,比如常见的x轴,y轴以及对应的刻度线和标签。
4. artist
atrist表示广义的绘图元件,往大了说,figure, axes, axis都属于绘图元件,往小了说,图片标题,图例,刻度,刻度标签等一幅图像上的具体元素都属于绘图元件。
在matplotlib中,有两套绘图语法,第一种是官方推荐的语法,是一种基于面向对象风格的语法,基本用法如下
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4], [1, 2, 3, 4])
首先通过plt.subplots创建一个figure和axes对象,然后通过axes对象的各种方法来创建图表,上述代码的输出结果如下
这种写法看上去非常的死板,但是在生成复杂图表时,更加的灵活。对于简单的图表,也支持以下写法
plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
上述代码生成的图片和之前的代码是一致的,只不过这里不再需要显示的声明一个figrue和axes对象,而是直接通过matplotlib.pyplot模块来创建简单图表,从代码量来看,更加的简洁。
在matplotlib.pyplot子模块中,实现了matplotlib.axes对象的各种方法,而且隐式的创建了figure和axes对象,调用更加的简单,对于一幅简单图表而言,使用matplotlib.pyplot会带来代码量的简化。
在R语言中,首先需要创建一个图形设备,比如png或者pdf, 绘图代码执行完毕之后,将对应的结果输出到绘图设备,然后保存。在matplotlib中,对应的顺序进行了调整,先执行绘图代码,然后将结果输出到对应的绘图设备,在这里,绘图设备称之为backend。
同样的一段绘图代码,在输出图像时可能输出到png, pdf等各种不同的设备上。对于不同的绘图设备,ma