-
-
Save andershammar/9070e0f6916a0fbda7a5 to your computer and use it in GitHub Desktop.
%pyspark | |
import matplotlib.pyplot as plt; plt.rcdefaults() | |
import numpy as np | |
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>" | |
# 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) |
just a comment for Python3 users
import io
instead of import StringIO
and use img.getvalue() in the following code
print("%html <div style='width:600px'>" + img.getvalue() + "</div>")
It doesn't work for me :(
This is the output:
Traceback (most recent call last):
File "/tmp/zeppelin_pyspark.py", line 222, in <module>
eval(compiledCode)
File "<string>", line 14, in <module>
File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 2526, in barh
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)
TclError: no display name and no $DISPLAY environment variable
Can you please advice me what am I missing?
Thank you.
c.
+1 I have the same error
TclError: no display name and no $DISPLAY environment variable
EDIT: Resolved
import os
import matplotlib
matplotlib.use('Agg')
os.system("export DISPLAY=:0")
With the example above I had to add:
plt.switch_backend('agg')
Otherwise I get:
RuntimeError: Invalid DISPLAY variable
Cheers,
Luca
This method seems to lag up the Zeppelin notebook, any idea why this is?
Thanks @H4ml3t
Save my time, @H4ml3t!
The size of your sample @deus42
Thank you @meniluca
Hello,
I have a zeppelin running on Ubuntu. Then access the zeppelin from a Windows machine, via Chrome.
There is a XManager running on the Windows machine, which will display Ubuntu apps like gedit, firefox by setup:
export DISPLAY=192.168.1.42:0.0
After trying all the solutions above, always hit error:
The XManager seems not connected.
TclError: no display name and no $DISPLAY environment variable
Appreciated if any advice.
Smashing, thank you very much!
awesome, saved a lot of time! Thanks!
Try
z.showplot(plt)
or
z.showmatplot(plt)
Thank you,
and one comment it may help,
I added p.clf() in the show function for clear the figure, because of without those clear function, figures are overlapped.