【发布时间】:2012-03-08 12:41:28
【问题描述】:
根据我对使用 matplotlib 的基本理解,您可以将所需的 plt 存储在一些“无花果”中,然后您可以使用 canvas.draw() 操作绘制所说的“无花果”。如果是这种情况,那么我应该没有任何问题,但是既然我这样做了,到底发生了什么以及在画布上获得某些东西的逻辑是什么。此外,我的最终目标是在 QtPy 窗口中显示此图。到目前为止的结果是我可以显示窗口和画布,但画布显示为空。我一直在看http://matplotlib.sourceforge.net/users/artists.html,感觉我所做的并不完全错误,但也许我忽略了一些细微差别。这是我引用的代码:
def drawThis(self):
self.axes.clear()
self.axes.grid(self.grid_cb.isChecked())
self.fig = plt.figure(figsize=(11,7),dpi=self.dpi)
file = fileList[selFile]
valid = [sColumn]
matrix = np.loadtxt(file, skiprows=1, usecols=valid)
colCount = np.loadtxt(file, dtype=object)
totalCols = colCount.shape[1]
kdeData = np.array(matrix)
dataRange = (Decimal(max(abs(kdeData))) / 10).quantize(1, rounding=ROUND_UP) * 10
gkde = stats.gaussian_kde(kdeData)
ind = np.linspace(-int(dataRange), int(dataRange), len(kdeData) * sSamples)
kdepdf = gkde.evaluate(ind)
##plot histogram of sample
plt.hist(kdeData, len(kdeData), normed=1, alpha=0.20)
##plot data generating density
plt.plot(ind, stats.norm.pdf(ind), 'r', linewidth=0.8, label='DGP normal')
##plot estimated density
plt.plot(ind, kdepdf, 'g', linewidth=0.8, label='kde')
plt.title('KDE for '+ str(nameList[selFile]))
plt.legend()
self.fig.canvas.draw()
【问题讨论】:
标签: python numpy matplotlib pyqt