Hi, Has this problem been solved? I also encountered the same problem (see the following). I build from the source pulled from the Master branch.
/afancy %python plt.figure() plt.plot(x, f(x), lw=2) z.show(plt, width='500px') plt.close() raceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 423, in figure **kwargs) File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 79, in new_figure_manager return new_figure_manager_given_figure(num, figure) File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 87, in new_figure_manager_given_figure window = Tk.Tk() File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1767, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: no display name and no $DISPLAY environment variable Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2980, in plot ax = gca() File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 803, in gca ax = gcf().gca(**kwargs) File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 450, in gcf return figure() File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 423, in figure **kwargs) File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 79, in new_figure_manager return new_figure_manager_given_figure(num, figure) File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 87, in new_figure_manager_given_figure window = Tk.Tk() File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1767, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: no display name and no $DISPLAY environment variable Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 22, in show File "<stdin>", line 63, in show_matplotlib File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 560, in savefig fig = gcf() File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 450, in gcf return figure() File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 423, in figure **kwargs) File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 79, in new_figure_manager return new_figure_manager_given_figure(num, figure) File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 87, in new_figure_manager_given_figure window = Tk.Tk() File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1767, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: no display name and no $DISPLAY environment variable On Thu, Sep 15, 2016 at 3:16 AM, Xi Shen <davidshe...@gmail.com> wrote: > I think I found the cause. I think it is font problem. In docker > environment, it only has a small set of fonts installed. But I have not > find out which font should I install...I will update you guys later. > > On Thu, Sep 15, 2016, 00:33 moon soo Lee <m...@apache.org> wrote: > >> Tried x = np.arange(100), x = np.linspace(-2,2,1000) with both python2 >> and python3 in %python interpreter. I don't have any problem. >> >> >> On Wed, Sep 14, 2016 at 3:12 AM Xi Shen <davidshe...@gmail.com> wrote: >> >>> OK, for this problem, it is discussed at https://stackoverflow.com/ >>> questions/15538099/conversion-of-unicode-minus-sign-from- >>> matplotlib-ticklabels >>> >>> However, I just tried with Jupyter notebook, and its matplotlib can plot >>> with negative values on the axes correctly, and >>> matplotlib.rcParams['axes.unicode_minus'] >>> = True. >>> >>> Can you guys please check if this only happens to a Python3 environment? >>> I don't think I am the first one hit this problem. >>> >>> >>> >>> On Wed, Sep 14, 2016 at 5:49 PM Xi Shen <davidshe...@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> I worked it out...So I have start a new instance of Zeppelin...creating >>>> a new notebook wont take effect...So all the Python code are executed in >>>> one python vm? Shouldn't separating ones are better? >>>> >>>> After I get matplotlib work, I have a new problem. >>>> >>>> This code snippet works >>>> %python >>>> >>>> import numpy as np >>>> import matplotlib.pyplot as plt >>>> >>>> x = np.arange(100) >>>> >>>> plt.figure() >>>> plt.plot(x, x**2) >>>> z.show(plt, width='300px') >>>> plt.close() >>>> >>>> But if I change x value to x= np.linspace(-2, 2, 1000), as it it used >>>> in the example, I got >>>> >>>> <matplotlib.figure.Figure object at 0x7fa177d197b8> >>>> [<matplotlib.lines.Line2D object at 0x7fa177ecf080>] >>>> >>>> Traceback (most recent call last): >>>> File "<stdin>", line 1, in <module> >>>> File "<stdin>", line 23, in show >>>> File "<stdin>", line 69, in show_matplotlib >>>> UnicodeEncodeError: 'ascii' codec can't encode character '\u2212' in >>>> position 17262: ordinal not in range(128) >>>> >>>> I did some testing, and I found if any of the value passed to plot() >>>> contains negative numbers, I will get this error...very odd. >>>> >>>> >>>> >>>> On Wed, Sep 14, 2016 at 8:50 AM Felix Cheung <felixcheun...@hotmail.com> >>>> wrote: >>>> >>>>> And >>>>> matplotlib.use('Agg') >>>>> >>>>> Would only work before matplotlib is first used so you would need to >>>>> restart the interpreter. From error stack below it looks like something >>>>> might be setting the default backend in matplotlib to TkAgg though. >>>>> >>>>> Are you using the Python interpreter or PySpark interpreter? Also how >>>>> you are calling matplotlib like Moon asks? >>>>> >>>>> _____________________________ >>>>> From: moon soo Lee <m...@apache.org> >>>>> Sent: Tuesday, September 13, 2016 2:34 PM >>>>> Subject: Re: Matplotlib uses tkinter instead of Agg >>>>> To: <users@zeppelin.apache.org> >>>>> >>>>> >>>>> >>>>> Hi, >>>>> >>>>> Thanks for sharing the problem. >>>>> Could you share which version of Zeppelin are you using and how did >>>>> you try matplotlib inside of Zeppelin? Are you trying matplotlib with >>>>> z.show() ? >>>>> >>>>> Thanks, >>>>> moon >>>>> >>>>> On Tue, Sep 13, 2016 at 1:56 AM Xi Shen <davidshe...@gmail.com> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I want to build a Zeppelin docker image for my self. The docker image >>>>>> is based on ubuntu:wily, and has openjdk-8-jre and python3 installed. I >>>>>> also installed other packages that I need. >>>>>> >>>>>> After started Zeppelin in the docker, I am able to access the webapp >>>>>> from my local browser. I tried to execute some simple Python script, and >>>>>> it >>>>>> works fine. But when I try to run the matplotlib example, I got error >>>>>> saying that tkinter cannot find the $DISPLAY. >>>>>> >>>>>> Traceback (most recent call last): >>>>>> File "<stdin>", line 1, in <module> >>>>>> File "/usr/local/lib/python3.4/dist-packages/matplotlib/pyplot.py", >>>>>> line 535, in figure >>>>>> **kwargs) >>>>>> File >>>>>> "/usr/local/lib/python3.4/dist-packages/matplotlib/backends/backend_tkagg.py", >>>>>> line 84, in new_figure_manager >>>>>> return new_figure_manager_given_figure(num, figure) >>>>>> File >>>>>> "/usr/local/lib/python3.4/dist-packages/matplotlib/backends/backend_tkagg.py", >>>>>> line 92, in new_figure_manager_given_figure >>>>>> window = Tk.Tk() >>>>>> File "/usr/lib/python3.4/tkinter/__init__.py", line 1859, in __init__ >>>>>> self.tk = _tkinter.create(screenName, baseName, className, >>>>>> interactive, wantobjects, useTk, sync, use) >>>>>> _tkinter.TclError: no display name and no $DISPLAY environment >>>>>> variable >>>>>> >>>>>> Some people on the Internet suggested adding matplotlib.use('Agg') at >>>>>> the beginning of the notebook, but it still does not work for me. >>>>>> >>>>>> -- >>>>>> >>>>>> >>>>>> Thanks, >>>>>> David S. >>>>>> >>>>> >>>>> >>>>> -- >>>> >>>> >>>> Thanks, >>>> David S. >>>> >>> -- >>> >>> >>> Thanks, >>> David S. >>> >> -- > > > Thanks, > David S. >