python matplotlib画图细节实现

在实现matplotlib绘图时,往往还需要对其细节进行更详尽的绘制,matplotlib库提供了丰富的方法,和属性供选择。

__author__ = 'lee'

# 2015年11月05日13:03:37

import matplotlib.pyplot as plt
import numpy as np

def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0., 5., 0.1)
t2 = np.arange(0., 5., 0.02)

plt.figure(1)
plt.subplot(211)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')

plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()

绘制形状如图:

matplotlib详细设计

t1,t2分别是两个0-5的等差数列。

plt.figure(1)表示绘制图形1,当如果还有代码例如:plt.figure(2)时,会生成另外的图形,也就是说,在程序执行时,便会生成两个图形。

plt.figure()会返回一个figure对象,例如:

fig = plt.figure()

可以通过figure对象提供的多种方法,对这个图形进行设置。详尽的方法在matplotlib官方帮助文档的904页开始。(注:Release 1.2.1)

比如:

fig.suptitle(“This is the figure’s title”, fontsize=14, fontweight=”bold”)

这个语句会生成fig这个对象,也就是这个图的标题。

 

这里在一个图中生成了两个子图,用了plt.subplot()方法.

当然也有其他的方法,利用plt.figure()返回的fig对象的方法生成子图,如:

ax = fig.add_subplot(111)

不过这里的添加子图的参数是111,也就是在这个图是1横1纵的第一个图,即这个figure对象中只有一个图。

这里返回一个Axes对象(注:帮助文档P907),利用得到的Axes对象可以对这个子图进行详细的设置,比如:

ax.set_title(“axes title”) #设置这个图的标题

ax.set_xlabel(“xlabel”) #设置这个图的x轴的标签

ax.set_ylabel(“ylabel”) #y轴标签

如果不利用ax对象,按照以前的办法,利用plt对轴标签进行设置也是可以的,如:

plt.xlabel(“This is the xlabel”)

但是使用这个代码进行设置的时候,一点需要注意是对哪一个图进行标签设置。

如置顶代码,有两个图,当程序开始执行plt.subplot(212)时,当前的图就是212图,

那么进行标签设置的时候,也是对其标签进行的设置。如果还需要对211图进行设置的话,

就还需要执行一下语句:plt.subplot(211),这样程序又将当前图定位为211图。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部