错误,删除EPD后使用弃用的类PySimpleApp

Cup*_*tor 3 python macos wxpython matplotlib

我在Mac OSX 10.8.2上使用spyder,我有卸载的Enthought.在我的代码中,我使用了matplotlib的pyplot.但是,当我运行简单的绘图程序时,我不断收到以下警告.

 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backends/backend_wx.py:1382: wxPyDeprecationWarning: Using deprecated class PySimpleApp. 
      wxapp = wx.PySimpleApp()
Run Code Online (Sandbox Code Playgroud)

我尝试了pip,手动安装matplotlib并且没有帮助.我该怎么办呢?这些是与绘图相关的代码行:

markerSize=400;
fig = plt.gcf()
plt.scatter(X,Y,marker='+',s=markerSize)
circle=plt.Circle((X[i]+k*meshStep,Y[i]+j*meshStep),frequency/magnification,color='r');
fig.gca().add_artist(circle)
plt.xlim(min(X)-1,max(X)+1)
plt.ylim(min(Y)-1,max(Y)+1) 
Run Code Online (Sandbox Code Playgroud)

在卸载Enthought之前我没有遇到这个问题,我的数字有缩放和移动按钮,但现在我只得到图形本身.

谢谢.

Mik*_*oll 9

您应该使用wx.App(False)而不是wx.PySimpleApp.PySimpleApp已在wxPython 2.9中弃用.wx.App(False)基本上做同样的事情.

  • 是的,matplotlib仍在使用wx.PySimpleApp.您没有在EPD中看到它的原因是因为它们仍在使用早期的wxPython 2.8,其中wx.PySimpleApp尚未被弃用.如果您将来遇到此问题,可以通过在matplotlib之前创建自己的wx.App来解决此问题.根据您使用matplotlib的方式,您可能需要在导入matplotlib的任何模块之前运行的模块中执行此操作. (2认同)