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.