plt.show() 不会在 jupyter 笔记本上渲染图像

ICC*_*ICC 4 python matplotlib amazon-emr jupyter-notebook

当我尝试使用在 EMR 实例上构建的 pyspark 环境(在 python3.6 上)在 jupyter 笔记本上绘制一些数据时,该图不会出现。总结:当我运行命令时,plt.show()绘图不会出现。

首先我尝试把它放在%matplotlib inline开头,但情节出现了。然后我尝试更改后端...没有运气!只有“Agg”后端有效,当我尝试其他代码时,代码崩溃了。

这与我试图绘制的代码相同:

import matplotlib.pyplot as plt
plt.switch_backend('agg')
plt.plot([1,2,3,4])
plt.show()
Run Code Online (Sandbox Code Playgroud)

输出

没有什么...

我还读到,为了绘图,我需要使用“%matplotlib inline”,但问题是在其他单元格上定义的变量在%matplotlib inline单元格上不存在。

让我们来看看...

细胞1

dummy_var = 10
Run Code Online (Sandbox Code Playgroud)

细胞2

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
print(dummy_var)
Run Code Online (Sandbox Code Playgroud)

输出

NameError:名称“dummy_var”未定义。

免责声明: 公平地说,该%matplotlib inline命令工作正常,但我还需要外部变量来绘制它们。

细胞 3

%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
Run Code Online (Sandbox Code Playgroud)

输出

[剧情]

这是我的笔记本,上面有错误和示例...... 有错误的图像

小智 5

我能够通过在单独的单元格中运行以下命令来使用 Spark 中的数据显示绘图:

%matplot plt
Run Code Online (Sandbox Code Playgroud)

这是由Sparkmagic github 页面中的 README 示例提供的