学科分类
目录
数据分析

通过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所示。

img

图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所示。

img

图2 运行结果

通过比较图1与图2可以看出,x轴的刻度范围为0~100,y轴的刻度范围为指定的数值区间。这是为什么呢?主要是因为在调用plot()函数时,如果传入了单个列表或数组,则会将其设为y轴序列,且自动生成x轴的序列。x轴的序列从0开始,与y轴序列具有相同的长度,所以范围为0~100。

点击此处
隐藏目录