Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法使用Apache Zeppelin运行matplotlib_Python_Matplotlib_Apache Zeppelin - Fatal编程技术网

Python 无法使用Apache Zeppelin运行matplotlib

Python 无法使用Apache Zeppelin运行matplotlib,python,matplotlib,apache-zeppelin,Python,Matplotlib,Apache Zeppelin,我正在使用齐柏林飞艇和matplotlib来可视化一些数据。我尝试了它们,但失败了,错误如下。你能给我一些如何修理的指导吗 %pyspark import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.ylabel('some numbers') plt.show() 这是我的错误 Traceback (most recent call last): File "/tmp/zeppelin_pyspark-3580576524078731

我正在使用齐柏林飞艇和matplotlib来可视化一些数据。我尝试了它们,但失败了,错误如下。你能给我一些如何修理的指导吗

%pyspark
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()
这是我的错误

Traceback (most recent call last):
  File "/tmp/zeppelin_pyspark-3580576524078731606.py", line 235, in <module>
    eval(compiledCode)
  File "<string>", line 1, in <module>
  File "/usr/lib64/python2.6/site-packages/matplotlib/pyplot.py", line 78, in <module>
    new_figure_manager, draw_if_interactive, show = pylab_setup()
  File "/usr/lib64/python2.6/site-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
    globals(),locals(),[backend_name])
  File "/usr/lib64/python2.6/site-packages/matplotlib/backends/backend_gtkagg.py", line 10, in <module>
    from matplotlib.backends.backend_gtk import gtk, FigureManagerGTK, FigureCanvasGTK,\
  File "/usr/lib64/python2.6/site-packages/matplotlib/backends/backend_gtk.py", line 8, in <module>
    import gtk; gdk = gtk.gdk
  File "/usr/lib64/python2.6/site-packages/gtk-2.0/gtk/__init__.py", line 64, in <module>
    _init()
  File "/usr/lib64/python2.6/site-packages/gtk-2.0/gtk/__init__.py", line 52, in _init
    _gtk.init_check()
RuntimeError: could not open display

以下内容适用于Spark&Python 3:

%pyspark

import matplotlib
import io

# If you use the use() function, this must be done before importing matplotlib.pyplot. Calling use() after pyplot has been imported will have no effect.
# see: http://matplotlib.org/faq/usage_faq.html#what-is-a-backend
matplotlib.use('Agg')
import matplotlib.pyplot as plt

def show(p):
    img = io.StringIO()
    p.savefig(img, format='svg')
    img.seek(0)
    print("%html <div style='width:600px'>" + img.getvalue() + "</div>")

plt.plot([1,2,3,4])
plt.ylabel('some numbers')
show(plt)

这对我来说在Python3上不起作用,但很快就会被合并。

根据@eddies的建议,我尝试过,这就是在齐柏林飞艇0.6.1 Python2.7上对我起作用的地方

%python
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.figure()
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
z.show(plt, width='500px')
plt.close()

请注意,从Zeppelin 0.7.3开始,matplotlib集成更加无缝,因此不再需要这里描述的方法

改变这一点:

import matplotlib
matplotlib.use('Agg')

完整代码示例Spark 2.2.0+python3(anaconda3.5):

%spark.pyspark
导入matplotlib.pyplot作为plt;plt.rcdefaults()
plt.switch_后端(“agg”)
将numpy作为np导入
输入io
def显示(p):
img=io.StringIO()
p、 savefig(img,format='svg')
img.seek(0)
打印(“%html”+img.getvalue()+”)
#示例数据
人物=(‘汤姆’、‘迪克’、‘哈利’、‘斯利姆’、‘吉姆’)
y_pos=np.arange(len(人))
性能=3+10*np.rand.rand(len(人))
错误=np.random.rand(len(人))
plt.barh(y位置,性能,XER=错误,align='center',alpha=0.4)
plt.yticks(y_位置,人员)
plt.xlabel(“性能”)
plt.title('你今天想跑多快?')
表演(plt)

我建议您使用齐柏林飞艇0.8.0中的IPython/IPySpark解释器,该解释器将很快发布。ipython中的matplotlib集成几乎与jupyter相同。有一个教程

可以在ubuntu上使用Python2.7。在
sudo获得安装python matplotlib后
谢谢大家,我知道我的集群会发生什么,因为我使用的是python 2.6。我需要做的就是将python升级到2.7是的,另请参见
%python
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.figure()
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
z.show(plt, width='500px')
plt.close()
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt; plt.rcdefaults()
plt.switch_backend('agg')
%spark.pyspark

import matplotlib.pyplot as plt; plt.rcdefaults()
plt.switch_backend('agg')
import numpy as np
import io

def show(p):
    img = io.StringIO()
    p.savefig(img, format='svg')
    img.seek(0)
    print ("%html <div style='width:600px'>" + img.getvalue() + "</div>")

# Example data
people=('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
y_pos=np.arange(len(people))
performance=3 + 10 * np.random.rand(len(people))
error=np.random.rand(len(people))

plt.barh(y_pos, performance, xerr=error, align='center', alpha=0.4)
plt.yticks(y_pos, people)
plt.xlabel('Performance')
plt.title('How fast do you want to go today?')

show(plt)