我一直试图从外部类中传递一个pyplot图(必须导入),但是一直没有成功。我甚至不知道这是否应该解决从课堂上获得情节(未显示)的问题。
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
class Plotter(object):
def __init__(self, xval=None, yval=None):
self.xval = xval
self.yval = yval
def plotthing(self):
f = Figure(1)
sp = f.add_subplot(111)
sp.plot(self.xval, self.yval, 'o-')
return f
这是粗略的类(名称plotfile.py)。这是批量的其他脚本。
from plotfile import Plotter
import matplotlib.pyplot as plt
app = Plotter(xval=range(0,10), yval=range(0,10))
plot = app.plotthing()
app.show(plot)
我已经尝试过这个主题的几个变种,并尝试了我最好的googlefu,但并非无济于事。任何帮助将不胜感激。如果我对此采取措施,我很乐意听取如何正确地做到这一点。感谢。
答案 0 :(得分:4)
以下几点:我认为Figure
的工作方式与您认为的不一样,并且您的Plotter
对象没有.show()
方法,因此{{1}不会起作用。以下对我有用:
app.show(plot)
# plotfile.py
import matplotlib.pyplot as plt
class Plotter(object):
def __init__(self, xval=None, yval=None):
self.xval = xval
self.yval = yval
def plotthing(self):
f = plt.figure()
sp = f.add_subplot(111)
sp.plot(self.xval, self.yval, 'o-')
return f