通过figure()函数创建画布
在pyplot模块中,默认拥有一个Figure对象,该对象可以理解为一张空白的画布,用于容纳图表的各种组件,比如图例、坐标轴等等。
例如,在默认的画布上绘制简单的图形,示例代码如下。
In [2]: import numpy as np
data_one = np.arange(100, 201) # 生成包含100~200的数组
plt.plot(data_one) # 绘制data_one折线图
plt.show() # 在本机上显示图形
上述代码中,首先生成了一个包含100~200之间所有整数的数组data_one,然后在默认的Figure对象上,调用plot()函数根据data_one绘制了一张折线图,并调用show()函数进行显示。这里提到的函数,大家只需了解即可,后面会有详细地介绍。
运行结果如图1所示。
图1 运行结果
通过运行结果可以看出,在一个固定大小的画布上有一条向上倾斜的直线。
如果不希望在默认的画布上绘制图形,则可以调用figure()函数构建一张新的空白画布。figure()函数的语法格式如下:
matplotlib.pyplot.figure(num = None,figsize = None,dpi = None,facecolor = None,
edgecolor = None,frameon = True,clear = False,
FigureClass = <class'matplotlib.figure.Figure'>,** kwargs)
部分参数表示的含义如下:
(1) num:表示图形的编号或名称,数字代表编号,字符串表示名称。如果没有提供该参数,则会创建一个新的图形,并且这个图形的编号会增加;如果提供该参数,并且具有此id的图形已经存在,则会将其激活并返回对其的引用,若此图形不存在,则会创建并返回它。
(2) figsize:用于设置画布的尺寸,宽度、高度以英寸为单位。
(3) dpi:用于设置图形的分辨率。
(4) facecolor:用于设置画板的背景颜色。
(5) edgecolor:用于显示边框颜色。
(6) frameon:表示是否显示边框。
(7) FigureClass:派生自matplotlib.figure.Figure的类,可以选择使用自定义的图形对象。
(8) clear:若设为True且该图形已经存在,则它会被清除。
接下来,调用figure()函数创建新的空白画布,示例代码如下。
In [3]: # 创建新的空白画布,返回Figure实例
figure_obj = plt.figure()
Out[3]: <matplotlib.figure.Figure at 0x57e7630>
上述示例中,通过figure()函数创建了一个新的空白画布figure_obj。从输出结果看出,figure_obj是一个Figure类的对象。
此外,还可以在创建画布时为其添加背景颜色,即设置facecolor参数。比如,创建一个背景颜色为灰色的新画布,并在这张画布上绘制另外一张折线图,示例代码如下。
In [4]: data_two = np.arange(200, 301) # 生成包含200~300的数
plt.figure(facecolor='gray') # 创建背景为灰色的新画布
plt.plot(data_two) # 通过data2绘制折线图
plt.show() # 在本机上显示图形
上述示例中,首先生成了一个包含200~300之间所有整数的数组data_two,然后调用figure()函数创建了一个灰色画布,然后根据data_two在灰色画布上绘制了一个简单的图形,并调用show()函数进行显示。
运行结果如图2所示。
图2 运行结果
通过比较图1与图2可以看出,x轴的刻度范围为0~100
,y轴的刻度范围为指定的数值区间。这是为什么呢?主要是因为在调用plot()函数时,如果传入了单个列表或数组,则会将其设为y轴序列,且自动生成x轴的序列。x轴的序列从0开始,与y轴序列具有相同的长度,所以范围为0~100。