【发布时间】:2020-01-06 22:40:56
【问题描述】:
当我尝试使用基于 EMR 实例构建的 pyspark 环境(在 python3.6 上)在 jupyter notebook 上绘制一些数据时,绘图不会出现。总结:当我运行plt.show() 命令时,情节不会出现。
首先我尝试将%matplotlib inline 放在开头,但情节出现了。然后我尝试更改后端...没有运气!只有“Agg”后端有效,当我尝试其他代码迷恋时。
这是我要绘制的相同代码:
import matplotlib.pyplot as plt
plt.switch_backend('agg')
plt.plot([1,2,3,4])
plt.show()
输出
没什么...
我还读到,对于绘图,我需要使用“%matplotlib inline”,但问题是在其他单元格上定义的变量在 %matplotlib inline 单元格上不存在。
让我们看看...
单元格 1
dummy_var = 10
单元格 2
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
print(dummy_var)
输出
NameError:名称“dummy_var”未定义。
免责声明:
公平地说,%matplotlib inline 命令工作正常,但我还需要外部变量来绘制它们。
细胞 3
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
输出
[剧情]
这是我的笔记本,带有错误和示例...
【问题讨论】:
-
奇怪,但是当我将最后两行放在不同的单元格中时,它可以工作。可以查吗?
-
你跑
%matplotlib inline了吗? -
是的!真是奇怪。当我在本地 jupyter notebook 上运行相同的代码时,我没有任何问题,但是当我在 emr jupyter notebook 上使用 pyspark 执行相同的代码时,就会发生错误。
-
import matplotlib.pyplot as plt应该只在笔记本顶部导入一次,而不是在每个单元格中。不要将它导入您从中生成绘图的单元格中。我也从不使用%matplotlib inline -
Alexander,正如我所说,当我运行 %matplotlib 时,内联工作完美,但没有外部变量。我已经尝试在第一个单元格中运行 %matplotlib inline 并且出现相同的错误
标签: python matplotlib jupyter-notebook amazon-emr