在python3下来自matplotlib的无数不良行为

时间:2016-01-07 22:29:11

标签: python python-3.x matplotlib

当尝试在python3下使用matplotlib绘制图形时,对pyplot.show()的调用无法执行任何操作。

(script bonker.py)

import matplotlib
import numpy as np

print('Matplotlib version '+matplotlib.__version__) ; 
print('Matplotlib is using '+matplotlib.backends.backend) ; 
print('Numpy version '+np.__version__) ; 

from matplotlib import pyplot as plt

infile=open('/usr/share/dict/words') ; 
vals=list() ; 
for line in infile : 
    vals += [ len(line.strip()) ] ; 
print('Values collected. ('+repr(len(vals))+' items.)') ; 

(hist,bin_edges)=np.histogram(vals,bins=20) ; 

myf=plt.figure() ; 
mya=myf.add_subplot(111) ;
mya.bar(bin_edges[1:],hist) ; 
plt.ion() ; 
print('plt.interactive is '+repr(plt.isinteractive())) ;
plt.show() ;

(在ipython中执行)

I1> %run bonker.py
Matplotlib version 1.5.0
Matplotlib is using GTK3Agg
Numpy version 1.10.1
Values collected. (479828 items.)
plt.interactive is True

I2> 

然后,没有任何反应。 plt.show()在重复呼叫后无效。 但是,如果我尝试明确地显示图形(plt.show(myf)),那么图形会正确显示,但是shell不再响应并且即使在图形关闭后仍然没有响应。有谁知道我能做些什么(希望没有重建python3和matplotlib)来修复这些行为?

0 个答案:

没有答案