我是Python和Spyder的新手。我使用的是Python 2.7.13和Spyder 3.1.4。我无法让plt.show()
处理我的数据,也无法从网站上重现简单的直方图示例。 plt.draw()
也不起作用。我已经将图形后端从内联更改为自动到Qt4到Qt5,这是一个类似的问题,但是没有这个有效。如果在IPython控制台中键入fig
,它将显示图形。我在这里发布这个例子。关于如何解决这个问题的任何建议都表示赞赏。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
fig = plt.figure()
ax = fig.add_subplot(111)
# the histogram of the data
n, bins, patches = ax.hist(x, 50, normed=1, facecolor='green', alpha=0.75)
# hist uses np.histogram under the hood to create 'n' and 'bins'.
# np.histogram returns the bin edges, so there will be 50 probability
# density values in n, 51 bin edges in bins and 50 patches. To get
# everything lined up, we'll compute the bin centers
bincenters = 0.5*(bins[1:]+bins[:-1])
# add a 'best fit' line for the normal PDF
y = mlab.normpdf( bincenters, mu, sigma)
l = ax.plot(bincenters, y, 'r--', linewidth=1)
ax.set_xlabel('Smarts')
ax.set_ylabel('Probability')
#ax.set_title(r'$\mathrm{Histogram\ of\ IQ:}\ \mu=100,\ \sigma=15$')
ax.set_xlim(40, 160)
ax.set_ylim(0, 0.03)
ax.grid(True)
plt.show()
答案 0 :(得分:3)
使用plt.draw()
代替plt.show()
。这对我有用。这是我找到的参考:https://github.com/spyder-ide/spyder/issues/2402
答案 1 :(得分:3)
更改您的ipython控制台图形设置。
如果您正在使用spyder,请执行以下步骤:
1)转到工具。 2)转到首选项 3)选择Ipython控制台。 4)转到图形选项卡 5)在“图形后端”部分下,选择“自动”作为后端类型。
然后重新启动内核。