Matplotlib绘图窗口为白色空白,不显示任何图像

时间:2019-05-06 22:20:40

标签: python python-3.x matplotlib miniconda

我在Mac OS 10.14.4上。我在miniconda3环境中安装了python。以下是带有“ conda list” enter image description here

的软件包的列表

enter image description here

enter image description here

我遇到的问题是,当我在终端中运行“ python”并打开外壳程序时,我尝试一个接一个地运行代码。

import openmc
sp1 = openmc.StatePoint('statepoint.550-20.h5')
tally1 = sp1.tallies[1]
flux1 = tally1.mean.ravel()
import matplotlib.pyplot as plt
import numpy as np
y = np.reshape(flux1, (200,200)) 
plt.imshow(y, cmap=plt.cm.viridis)
plt.show()

运行plt.show()后出现的问题是绘图窗口打开,显示白色屏幕,其中没有任何图像。现在,如果我运行plt.savefig('19.7fast.png')而不是plt.show(),则可以将图像保存在我在终端中运行python shell的目录中。

当我在python shell中运行import matplotlib.pyplot as plt; plt.get_backend()时,我看到'TkAgg',现在我尝试更改为plt.switch_backend('MacOSX'),因为我看上去有类似的问题和类似的解决方案。但是,这给了我错误

ImportError:Python未作为框架安装。如果未将Python安装为框架,则Mac OS X后端将无法正常运行。有关在Mac OS X上将Python安装为框架的更多信息,请参见Python文档。请重新安装Python作为框架,或尝试其他后端之一。如果您正在使用(Ana)Conda,请安装python.app并将“ python”的使用替换为“ pythonw”。有关更多信息,请参阅Matplotlib常见问题解答中的“在OSX上使用Matplotlib”。

解决这个问题的任何帮助都非常有用

2 个答案:

答案 0 :(得分:1)

以我的经验,要使其在Mac OS上运行,我发现使用完整版本的Anaconda并使用VS Code作为E​​ditor / IDE容易得多。

卸载Miniconda:

  • 打开终端窗口,并删除整个miniconda安装目录:
rm -rf ~/miniconda.
  • 您还可以编辑~~ .bash_profile并从PATH环境变量中删除miniconda目录
  • 删除隐藏的.condarc文件以及通常在您的目录中创建的.conda和.continuum目录:
rm -rf ~/.condarc ~/.conda ~/.continuum

安装Anaconda和VS代码:

  • 转到installation website并下载Mac OS安装程序(我建议选择最新版本的Python(3.7)

  • 按照安装说明

  • 安装后,打开Anaconda Navigator,然后选择安装VS代码的选项:

VS Code Install/Launch

运行测试脚本

  • 通过Anaconda安装程序打开VS代码
  • 创建新脚本:“文件”>“新文件”
  • 将其另存为“ test.py”
  • 输入以下代码:
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-4*np.pi,4*np.pi)
y = np.sin(x)
plt.plot(x,y,'.-')
plt.show()

  • 保存文件
  • 选择Anaconda Python解释器:
  • 打开命令托盘(Ctrl+Shift+P
  • 输入“ Python:选择解释器”
  • 选择一个名字叫“ anaconda”的人...
  • 再次打开命令对话框(Ctrl+Shift+P
  • 输入“ Python:创建终端”并在终端运行:
python test.py

希望这一切都能奏效,您将看到以下内容:

Sin function graph

答案 1 :(得分:1)

我能够通过添加以下代码来解决macOS Majave 10.14.6的问题,而无需通过Anaconda / Conda重新安装(如https://stackoverflow.com/a/56025793/1657354中所述):

import matplotlib
import platform
if platform.system() == 'Darwin':
    matplotlib.use('MacOSX')
else:
    matplotlib.use('TkAgg')

我相信platform.system() == 'Darwin'允许此代码在其他平台上工作。