JuliaPy / PyPlot.jl

Plotting for Julia based on matplotlib.pyplot
https://github.com/JuliaPy/PyPlot.jl
MIT License
475 stars 87 forks source link

Matplotlib 3.1.0 incompatibility #447

Closed carstenbauer closed 5 years ago

carstenbauer commented 5 years ago

Regular plotting works fine. However, with usetex = true, I get the following error. Everything works for matplotlib v3.0.3.

julia> plot(1:3)
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\carsten\Anaconda3\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "C:\Users\carsten\Anaconda3\lib\tkinter\__init__.py", line 746, in callit
    func(*args)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\_backend_tk.py", line 335, in idle_draw
    self.draw()
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 9, in draw
    super(FigureCanvasTkAgg, self).draw()
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 388, in draw
    self.figure.draw(self.renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\figure.py", line 1709, in draw
    renderer, self, artists, self.suppressComposite)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 2645, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1206, in draw
    renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in _get_tick_bboxes
    for tick in ticks if tick.label1.get_visible()],
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in <listcomp>
    for tick in ticks if tick.label1.get_visible()],
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\text.py", line 890, in get_window_extent
    bbox, info, descent = self._get_layout(self._renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\text.py", line 291, in _get_layout
    ismath="TeX" if self.get_usetex() else False)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 201, in get_text_width_height_descent
    s, fontsize, renderer=self)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\texmanager.py", line 450, in get_text_width_height_descent
    page, = dvi
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 243, in __iter__
    while self._read():
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 301, in _read
    self._dtable[byte](self, byte)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 161, in wrapper
    return method(self, *[f(self, byte-min) for f in get_args])
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 441, in _fnt_def
    self._fnt_def_real(k, c, s, d, a, l)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 446, in _fnt_def_real
    tfm = _tfmfile(fontname)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 1064, in _fontfile
    return cls(filename) if filename else None
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 728, in __init__
    with open(filename, 'rb') as file:
OSError: [Errno 22] Invalid argument: 'kpsewhich: warning: running with administrator privileges\r\nC:/Users/carsten/AppData/Local/Programs/MiKTeX 2.9/fonts/tfm/public/cm/cmss10.tfm'
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\carsten\Anaconda3\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\_backend_tk.py", line 256, in resize
    self.draw()
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 9, in draw
    super(FigureCanvasTkAgg, self).draw()
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 388, in draw
    self.figure.draw(self.renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\figure.py", line 1709, in draw
    renderer, self, artists, self.suppressComposite)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 2645, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1206, in draw
    renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in _get_tick_bboxes
    for tick in ticks if tick.label1.get_visible()],
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in <listcomp>
    for tick in ticks if tick.label1.get_visible()],
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\text.py", line 890, in get_window_extent
    bbox, info, descent = self._get_layout(self._renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\text.py", line 291, in _get_layout
    ismath="TeX" if self.get_usetex() else False)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 201, in get_text_width_height_descent
    s, fontsize, renderer=self)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\texmanager.py", line 450, in get_text_width_height_descent
    page, = dvi
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 243, in __iter__
    while self._read():
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 301, in _read
    self._dtable[byte](self, byte)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 161, in wrapper
    return method(self, *[f(self, byte-min) for f in get_args])
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 441, in _fnt_def
    self._fnt_def_real(k, c, s, d, a, l)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 446, in _fnt_def_real
    tfm = _tfmfile(fontname)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 1064, in _fontfile
    return cls(filename) if filename else None
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 728, in __init__
    with open(filename, 'rb') as file:
OSError: [Errno 22] Invalid argument: 'kpsewhich: warning: running with administrator privileges\r\nC:/Users/carsten/AppData/Local/Programs/MiKTeX 2.9/fonts/tfm/public/cm/cmss10.tfm'
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\carsten\Anaconda3\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "C:\Users\carsten\Anaconda3\lib\tkinter\__init__.py", line 746, in callit
    func(*args)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\_backend_tk.py", line 335, in idle_draw
    self.draw()
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 9, in draw
    super(FigureCanvasTkAgg, self).draw()
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 388, in draw
    self.figure.draw(self.renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\figure.py", line 1709, in draw
    renderer, self, artists, self.suppressComposite)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 2645, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1206, in draw
    renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in _get_tick_bboxes
    for tick in ticks if tick.label1.get_visible()],
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in <listcomp>
    for tick in ticks if tick.label1.get_visible()],
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\text.py", line 890, in get_window_extent
    bbox, info, descent = self._get_layout(self._renderer)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\text.py", line 291, in _get_layout
    ismath="TeX" if self.get_usetex() else False)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 201, in get_text_width_height_descent
    s, fontsize, renderer=self)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\texmanager.py", line 450, in get_text_width_height_descent
    page, = dvi
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 243, in __iter__
    while self._read():
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 301, in _read
    self._dtable[byte](self, byte)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 161, in wrapper
    return method(self, *[f(self, byte-min) for f in get_args])
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 441, in _fnt_def
    self._fnt_def_real(k, c, s, d, a, l)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 446, in _fnt_def_real
    tfm = _tfmfile(fontname)
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 1064, in _fontfile
    return cls(filename) if filename else None
  File "C:\Users\carsten\Anaconda3\lib\site-packages\matplotlib\dviread.py", line 728, in __init__
    with open(filename, 'rb') as file:
OSError: [Errno 22] Invalid argument: 'kpsewhich: warning: running with administrator privileges\r\nC:/Users/carsten/AppData/Local/Programs/MiKTeX 2.9/fonts/tfm/public/cm/cmss10.tfm'
1-element Array{PyCall.PyObject,1}:
 PyObject <matplotlib.lines.Line2D object at 0x000000002D664C88>
stevengj commented 5 years ago

The TkAgg backend is broken, it seems … try a different backend.

We already disabled TkAgg on MacOS; maybe we should do so on Windows too.

stevengj commented 5 years ago

Can you please try to reproduce this in Python (use the MPLBACKEND environment variable to set the backend to tkagg) and file a Matplotlib issue?

carstenbauer commented 5 years ago

Can reproduce in Python. With environmental variable set, I get

import matplotlib.pyplot as plt

plt.rc('text', usetex=True)

plt.plot([1,2,3])
plt.show()
Exception in Tkinter callback
Traceback (most recent call last):
  File "c:\users\carsten\anaconda3\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\backends\_backend_tk.py", line 256, in resize
    self.draw()
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 9, in draw
    super(FigureCanvasTkAgg, self).draw()
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 388, in draw
    self.figure.draw(self.renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\figure.py", line 1709, in draw
    renderer, self, artists, self.suppressComposite)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 2645, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\axis.py", line 1206, in draw
    renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in _get_tick_bboxes
    for tick in ticks if tick.label1.get_visible()],
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in <listcomp>
    for tick in ticks if tick.label1.get_visible()],
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\text.py", line 890, in get_window_extent
    bbox, info, descent = self._get_layout(self._renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\text.py", line 291, in _get_layout
    ismath="TeX" if self.get_usetex() else False)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 201, in get_text_width_height_descent
    s, fontsize, renderer=self)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\texmanager.py", line 450, in get_text_width_height_descent
    page, = dvi
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 243, in __iter__
    while self._read():
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 301, in _read
    self._dtable[byte](self, byte)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 161, in wrapper
    return method(self, *[f(self, byte-min) for f in get_args])
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 441, in _fnt_def
    self._fnt_def_real(k, c, s, d, a, l)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 446, in _fnt_def_real
    tfm = _tfmfile(fontname)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 1064, in _fontfile
    return cls(filename) if filename else None
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 728, in __init__
    with open(filename, 'rb') as file:
OSError: [Errno 22] Invalid argument: 'kpsewhich: warning: running with administrator privileges\r\nC:/Users/carsten/AppData/Local/Programs/MiKTeX 2.9/fonts/tfm/public/cm/cmss10.tfm'
Exception in Tkinter callback
Traceback (most recent call last):
  File "c:\users\carsten\anaconda3\lib\tkinter\__init__.py", line 1702, in __call__
    return self.func(*args)
  File "c:\users\carsten\anaconda3\lib\tkinter\__init__.py", line 746, in callit
    func(*args)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\backends\_backend_tk.py", line 335, in idle_draw
    self.draw()
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 9, in draw
    super(FigureCanvasTkAgg, self).draw()
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 388, in draw
    self.figure.draw(self.renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\figure.py", line 1709, in draw
    renderer, self, artists, self.suppressComposite)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 2645, in draw
    mimage._draw_list_compositing_images(renderer, self, artists)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\image.py", line 135, in _draw_list_compositing_images
    a.draw(renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
    return draw(artist, renderer, *args, **kwargs)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\axis.py", line 1206, in draw
    renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in _get_tick_bboxes
    for tick in ticks if tick.label1.get_visible()],
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\axis.py", line 1151, in <listcomp>
    for tick in ticks if tick.label1.get_visible()],
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\text.py", line 890, in get_window_extent
    bbox, info, descent = self._get_layout(self._renderer)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\text.py", line 291, in _get_layout
    ismath="TeX" if self.get_usetex() else False)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py", line 201, in get_text_width_height_descent
    s, fontsize, renderer=self)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\texmanager.py", line 450, in get_text_width_height_descent
    page, = dvi
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 243, in __iter__
    while self._read():
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 301, in _read
    self._dtable[byte](self, byte)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 161, in wrapper
    return method(self, *[f(self, byte-min) for f in get_args])
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 441, in _fnt_def
    self._fnt_def_real(k, c, s, d, a, l)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 446, in _fnt_def_real
    tfm = _tfmfile(fontname)
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 1064, in _fontfile
    return cls(filename) if filename else None
  File "c:\users\carsten\anaconda3\lib\site-packages\matplotlib\dviread.py", line 728, in __init__
    with open(filename, 'rb') as file:
OSError: [Errno 22] Invalid argument: 'kpsewhich: warning: running with administrator privileges\r\nC:/Users/carsten/AppData/Local/Programs/MiKTeX 2.9/fonts/tfm/public/cm/cmss10.tfm'
carstenbauer commented 5 years ago

Issue filed https://github.com/matplotlib/matplotlib/issues/14633

stevengj commented 5 years ago

Thanks for following up! Closing as an upstream issue.