"dvipng: not found" when creating matplotlib figure

15,061

Solution 1

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

Solution 2

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

sudo apt-get install dvipng

Solution 3

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
Share:
15,061

Related videos on Youtube

user3601754
Author by

user3601754

Updated on June 06, 2022

Comments

  • user3601754
    user3601754 about 2 years

    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)
    

    ...

    • Warren Weckesser
      Warren Weckesser over 9 years
      "it doesn t work"... What doesn't work? Explain the problem. Do you get an error? An unexpected result?
    • user3601754
      user3601754 over 9 years
      Sorry for the lack of explanations...It crashs and I get : sh: 1: dvipng: not found Exception in Tkinter callback
    • Ffisegydd
      Ffisegydd over 9 years
      There must be something wrong either with how you're running the code, or how you've installed it. It runs fine for me on Mac OS X using Python 3.4 and matplotlib 1.4.2.
    • cel
      cel over 9 years
      @user3601754, please edit the whole error message into your question. The exact error will help us to understand your problem and others when trying to find a solution for a similar problem.
    • gboffi
      gboffi over 9 years
      @user3601754 I don't see how it comes to call dvipng but if you're on linux you can install dvipng in 30" and see if your problem goes away
    • user3601754
      user3601754 over 9 years
      I will try when i m go back home. Here i am, the internet isn t very fast..thanks for help
    • tacaswell
      tacaswell over 9 years
      The reason that it is calling divpng is that usetex is True, which means mpl is trying to use LaTeX to render the text on your graph which in turn uses dvipng to turn the dvi output of LaTeX into a png to be include in the raster output.
  • mab
    mab over 5 years
    Thanks. Works for Ubuntu 18.04 LTS, too.
  • gota
    gota about 4 years
    I don't have sudo permission. what can I do?
  • Thiago Falcao
    Thiago Falcao about 4 years
    usually you need sudo permission to install something. try sudo -i to become root, after that try apt-get install dvipng
  • pfincent
    pfincent over 2 years
    With macports, I get an "Error: Port dvipng not found".
  • LemurPwned
    LemurPwned over 2 years
    @pfincent interesting, according to this: ports.macports.org/port/dvipng , it should be available. Maybe try updating the ports sudo port -v selfupdate?
  • pfincent
    pfincent over 2 years
    I had just installed macports a few minutes earlier before trying to download dvipng, so I didn't assume that was necessary, but it did indeed fix the problem. Thanks!