Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"dvipng: not found" when creating matplotlib figure

I try to plot a frequency histogram with matplotlib but it doesn t work and i don t know where is the problem...

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

data = np.array([58.35, 71.83, 49.25, 38.89, 12.6, 58.34, 34.5, 11.6, 64.66, \
89.14, 101.84, 26.91, 38.74, 65.03, 35.23, 70.73, 54.52, 73.36, 74.35, \
60.54, 73.52, 24.58, 50.31, 55.63, 14.6, 53.64, 81.6])

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

n, bins, patches=ax.hist(data, 10, facecolor='green', alpha=0.75)

ax.yaxis.set_major_formatter(ticker.FuncFormatter(lambda y, pos: ('%.2f')%(y*1e-3)))
ax.set_ylabel('Frequency (000s)')

plt.show()

A part of the error message :

sh: 1: dvipng: not found
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1535, in __call__
    return self.func(*args)
  File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 276, in resize
    self.show()
  File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_tkagg.py", line 348, in draw
    FigureCanvasAgg.draw(self)
  File "/usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py", line 451, in draw
    self.figure.draw(self.renderer)
  File "/usr/lib/pymodules/python2.7/matplotlib/artist.py", line 55, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/figure.py", line 1034, in draw
    func(*args)

...

like image 521
user3601754 Avatar asked Dec 27 '14 14:12

user3601754


3 Answers

In Ubuntu 14.04 I used this command to solve the problem:

sudo apt-get install dvipng
like image 60
Thiago Falcao Avatar answered Nov 18 '22 06:11

Thiago Falcao


It looks like you are having a problem with the renderer or backend. You might want to try a different backend, by adding this at the beginning of your code:

import matplotlib as mpl
mpl.use('macOsX')

For other renderers, see here: http://matplotlib.org/faq/usage_faq.html#what-is-a-backend

like image 37
David Manheim Avatar answered Nov 18 '22 06:11

David Manheim


I found that if you have some Latex distr. installed you may also go with:

 sudo tlmgr install dvipng

This is especially helpful for Mac, alternatively you can use ports:

sudo port install dvipng
like image 1
LemurPwned Avatar answered Nov 18 '22 06:11

LemurPwned