2016-07-19 6 views
1

私はZeppelinと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-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 

を持っているエラーは、私はまた、これらの行を追加しようとするが、それでもスパークと私のための

import matplotlib 
matplotlib.use('Agg') 

答えて

6

次作品を動作することはできませんです& 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) 

ザ・ツェッペリンdocumentation以下は動作するはずことを示唆している:

%python 
import matplotlib.pyplot as plt 
plt.figure() 
(.. ..) 
z.show(plt) 
plt.close() 

これは、Python 3で私のために働くが、すぐツー・マージされPR #1213で対処することになりそうだしません。 @eddiesの提案を1として

+0

に私のために働いたものです。 'sudo apt-get install python-matplotlib' –

+0

ありがとう、私は自分のクラスタで何が起こるか知っています。なぜなら、私はPython 2.6を使用しているからです。私がする必要があるのは、Pythonを2.7にアップグレードすることだけです – hminle

0

、私が試したし、これはUbuntuの上でPython2.7で動作しますツェッペリン0.6.1の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() 
関連する問題