"dvipng: not found" when creating matplotlib figure

Question:

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)

Asked By: user3601754

||

Answers:

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

Answered By: David Manheim

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

sudo apt-get install dvipng
Answered By: Thiago Falcao

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
Answered By: LemurPwned

For MacOS add this to your code!

import matplotlib as mpl
mpl.use('macOsX')
Answered By: Manvith
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.