Matplotlib错误:LaTeX无法处理以下字符串:'lp'

bjd*_*385 14 python matplotlib python-2.7

这是我从底部提供的函数中得到的错误:

'latex' is not recognized as an internal or external command,
operable program or batch file.
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\python27\lib\lib-tk\Tkinter.py", line 1486, in __call__
    return self.func(*args)
  File "C:\python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", lin
e 278, in resize
    self.show()
  File "C:\python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", lin
e 349, in draw
    FigureCanvasAgg.draw(self)
  File "C:\python27\lib\site-packages\matplotlib\backends\backend_agg.py", line
469, in draw
    self.figure.draw(self.renderer)
  File "C:\python27\lib\site-packages\matplotlib\artist.py", line 59, in draw_wr
apper
    draw(artist, renderer, *args, **kwargs)
  File "C:\python27\lib\site-packages\matplotlib\figure.py", line 1079, in draw
    func(*args)
  File "C:\python27\lib\site-packages\matplotlib\artist.py", line 59, in draw_wr
apper
    draw(artist, renderer, *args, **kwargs)
  File "C:\python27\lib\site-packages\matplotlib\axes\_base.py", line 2092, in d
raw
    a.draw(renderer)
  File "C:\python27\lib\site-packages\matplotlib\artist.py", line 59, in draw_wr
apper
    draw(artist, renderer, *args, **kwargs)
  File "C:\python27\lib\site-packages\matplotlib\axis.py", line 1116, in draw
    renderer)
  File "C:\python27\lib\site-packages\matplotlib\axis.py", line 1065, in _get_ti
ck_bboxes
    extent = tick.label1.get_window_extent(renderer)
  File "C:\python27\lib\site-packages\matplotlib\text.py", line 741, in get_wind
ow_extent
    bbox, info, descent = self._get_layout(self._renderer)
  File "C:\python27\lib\site-packages\matplotlib\text.py", line 311, in _get_lay
out
    ismath=False)
  File "C:\python27\lib\site-packages\matplotlib\backends\backend_agg.py", line
223, in get_text_width_height_descent
    renderer=self)
  File "C:\python27\lib\site-packages\matplotlib\texmanager.py", line 670, in ge
t_text_width_height_descent
    dvifile = self.make_dvi(tex, fontsize)
  File "C:\python27\lib\site-packages\matplotlib\texmanager.py", line 417, in ma
ke_dvi
    report))
RuntimeError: LaTeX was not able to process the following string:
'lp'
Here is the full report generated by LaTeX:
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的函数,它会产生上述错误:

def Derivative( inputArrayList,rowNumber_from_top ):
    for image in inputArrayList:
        rowValues = image[0][rowNumber_from_top]
        for i in range(len(rowValues)):         
            # Perform the difference derivative estimation
            if i == 0 or i == (len(rowValues) - 1):
                rowValues[ i ] = 0 # set edges to 0
            else:
                derivative = (rowValues[ i+1 ] - rowValues[ i-1 ])/(2.0)
                rowValues[ i ] = derivative
        plt.rc('text', usetex=True)
        plt.rc('font', family='serif')
        plt.plot(rowValues,color="k")
        plt.ylim( (0,image.max() + 10.0) )
        plt.title(r"$\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$")
        plt.show()
Run Code Online (Sandbox Code Playgroud)

注意这条线plt.title(r"$\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$").我从Matplotlib网站上的第一个图表中得到了这个(我已经尝试过运行该程序,但是我似乎无法让它工作).我几乎可以肯定这是一个简单的修复(比如我可能缺少一个LaTeX模块或其他东西?).

整个目标是能够\displaystyle在标题的标题和标签中使用命令来使分数更大.

我很抱歉,如果这是重复的(虽然我找不到类似的问题),我只需要一个指针让我朝着正确的方向前进.

感谢您的时间,

布兰登

eza*_*rin 9

您似乎缺少用于 dvi 渲染的包。在基于 debian 的发行版上,这应该足以获得所有需要的包:

sudo apt-get install texlive-latex-extra texlive-fonts-recommended dvipng cm-super
Run Code Online (Sandbox Code Playgroud)

  • 如果有人在 MacOSX 上遇到同样的问题,我更新了所有 tex 软件包(通过转到 MacTeX 的一部分“Tex Live Utility”应用程序 --> 更新选项卡 --> 全选 --> 右键单击​​并更新),这似乎已修复它。我无法确定哪个包出了问题,但至少我认为知道更新所有内容可以解决问题是件好事。 (4认同)
  • 关于 mac 有什么想法吗? (3认同)
  • 对于最新版本的 Matplotlib,您还需要安装 cm-super `sudo apt-get install cm-super` (2认同)