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

时间:2015-07-03 21:07:56

标签: python python-2.7 matplotlib

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

'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:

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

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()

注意第plt.title(r"$\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$")行。我从Matplotlib网站上的first graph获取了这个(并且我已经尝试过运行它们提供的程序)并且我似乎无法让它工作。我几乎可以肯定这是一个简单的修复(比如我可能缺少一个LaTeX模块或什么东西?)。

整个目标是能够在图表的标题和标签中使用命令\displaystyle来缩小分数。

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

感谢您的时间,

布兰登

2 个答案:

答案 0 :(得分:0)

您应该测试是否安装了乳胶。为此,打开一个终端并输入

which latex

输出应该是乳胶二进制文件的路径。如果没有找到,请尝试安装胶乳分发。这个过程取决于你的操作系统,例如Ubuntu有几个包。

答案 1 :(得分:0)

似乎您缺少dvi渲染的软件包。在基于debian的发行版中,这足以获得所有必需的软件包:

sudo apt-get install texlive-latex-extra texlive-fonts-recommended dvipng