【非常重要】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()
上一篇: 在Yii中直接使用sql
下一篇: Block中直接使用self,YTK中