问题
Python环境:3.6.3
Mac系统:10.12.6 macOS Sierra
我用PyCharm使用Matplotlib时候(just for Mac),发现不能显示出图像。但是,我在Eclipse里面使用,却可以正常显示图像。
那么,可以确定的是,我PyCharm出了问题。到底是什么原因呢?
分析、解决
网上找了好几种方法,最后找到了解决办法。
总结一下,那种方法是读者需要的。
- 法一:没有加入show()方法
解决办法:
测试代码:
import numpy as np
from matplotlib import pyplot as plt
from skimage import data
random_image = np.random.random([500, 500])
print(random_image)
plt.imshow(random_image, cmap='gray')
plt.colorbar()
plt.show()
很明显,我是加入了show()方法的。所以,排除这种方法。
法二:Matplotlib的backend默认设置问题
找到你下载的Matplotlib的包的文件夹,文件下面有一个叫matplotlibrc的文件。
用编辑器打开matplotlibrc,然后查找backend的位置。
然后,你会发现,他采用的是macosx。很明显,不能用这种格式。重点是,他默认是采用”Agg”格式。很明显,不能使用这种格式,而是要换成”TkAgg”格式
解决办法:
用Vim命令把”macosx”修改为”TkAgg”
很遗憾,即使我修改了,在PyCharm中,依然没法打印出图像。
法三:PyCharm中使用命令修改backend格式
当然,这种方式是可行的。
解决办法:
在代码的最前面,加入以下代码:
# import matplotlib
# matplotlib.use('TkAgg')
就可以了。
测试代码:
import matplotlib
matplotlib.use('TkAgg')
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-np.pi,np.pi,256,endpoint=True)
C,S=np.cos(x),np.sin(x)
plt.plot(x,C)
plt.plot(x,S)
plt.show()