欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【非常重要】matplotlib中直接使用Figure类创建对象和使用pyplot【plt.figure()】返回一个Figure的区别!

程序员文章站 2022-07-14 09:32:25
...

参考别人的分析:https://blog.csdn.net/qq_28485501/article/details/85329343

 

【非常重要】创建Figure对象必须使用plt.figure()方法,而不能直接使用matplotlib.figure.Figure()创建,原因看下面的说明

【非常重要】创建Figure对象必须使用plt.figure()方法,而不能直接使用matplotlib.figure.Figure()创建

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

fg = plt.figure()

ax1 = fg.add_subplot(2, 4, 1)  # type:plt.Axes
ax1.plot(x, y)
#
ax2 = fg.add_subplot(2, 4, 3)  # type:plt.Axes
ax2.plot(x, -y)

fg.show()

 

 【错误原因】直接使用matplotlib.figure.Figure()类创建一个新的对象的实例会报错误

"""
    直接使用Figure类创建一个新的对象的实例
    运行结果会报错:AttributeError: 'FigureCanvasBase' object has no attribute 'manager'
    错误原因:
        在matplotlib.figure.Figure() 中,其初始化函数__init__(),
        并没有默认生成manager这个属性,所以在调用show的时候,就会报错!如上其show函数定义的那样
"""
fg = plt.Figure()

ax1 = fg.add_subplot(2, 4, 1)  # type:plt.Axes
ax1.plot(x, y)
#
ax2 = fg.add_subplot(2, 4, 3)  # type:plt.Axes
ax2.plot(x, -y)

fg.show()