Hi, I could make matplotlib work in Zeppelin with helper function
%pyspark import matplotlib.pyplot as plt import StringIO def show(p): img = StringIO.StringIO() p.savefig(img, format='svg') img.seek(0) print "%html <div style='width:600px'>" + img.buf + "</div>" Then it displays plot, like %pyspark show(plt) attaching a screenshot Thanks, moon On Tue, Jun 9, 2015 at 7:08 PM Wush Wu <w...@bridgewell.com> wrote: > Dear all, > > I am trying the materials of an online spark course in edX ( > https://www.edx.org/course/introduction-big-data-apache-spark-uc-berkeleyx-cs100-1x). > They use the ipython notebook to teach, and I want to test if zeppelin is > as good as ipython notebook when using pyspark. > > However, the matplotlib does not work so far. The script and error message > are: > > ``` > %pyspark > # Check matplotlib plotting > import matplotlib.pyplot as plt > import matplotlib.cm as cm > from math import log > > # function for generating plot layout > def preparePlot(xticks, yticks, figsize=(10.5, 6), hideLabels=False, > gridColor='#999999', gridWidth=1.0): > plt.close() > fig, ax = plt.subplots(figsize=figsize, facecolor='white', > edgecolor='white') > ax.axes.tick_params(labelcolor='#999999', labelsize='10') > for axis, ticks in [(ax.get_xaxis(), xticks), (ax.get_yaxis(), > yticks)]: > axis.set_ticks_position('none') > axis.set_ticks(ticks) > axis.label.set_color('#999999') > if hideLabels: axis.set_ticklabels([]) > plt.grid(color=gridColor, linewidth=gridWidth, linestyle='-') > map(lambda position: ax.spines[position].set_visible(False), > ['bottom', 'top', 'left', 'right']) > return fig, ax > > # generate layout and plot data > x = range(1, 50) > y = [log(x1 ** 2) for x1 in x] > fig, ax = preparePlot(range(5, 60, 10), range(0, 12, 1)) > plt.scatter(x, y, s=14**2, c='#d6ebf2', edgecolors='#8cbfd0', alpha=0.75) > ax.set_xlabel(r'$range(1, 50)$'), ax.set_ylabel(r'$\log_e(x^2)$') > pass > ``` > > (<class '_tkinter.TclError'>, TclError('no display name and no $DISPLAY > environment variable',), <traceback object at 0x7fce51a925f0>) > > Is there any work around to use matplotlib in zeppelin so far? Or should I > open an issue? > > Best, > Wush >