oli*_*rsm 8 python latex r matplotlib r-markdown
我必须在Windows上使用Anaconda,并试图编写一个编织为pdf的RMarkdown文档,其中在RMarkdown中我使用了一些Python代码段。但是,当我尝试使matplotlib使用LaTeX(带有rc.params)时,我发现它不会渲染,但是会出现错误,我无法理解也无法修复。令人反感的是
mpl.rcParams.update({"text.usetex": True})
...
plt.title(r'Some Latex with symbol \$')
Run Code Online (Sandbox Code Playgroud)
是LaTeX试图解释\$哪些引发问题。据我所知,这应该正确地解决。如果我删除了\$所有内容,则一切正常(或者如果我将其替换为$e=mc^2$)。
Quitting from lines 31-34 (example.Rmd)
Error in py_call_impl(callable, dots$args, dots$keywords) :
RuntimeError: Evaluation error: KeyError: b'tcrm1200'
Detailed traceback:
File "C:\Users\Harry\ANACON~1\lib\site-packages\matplotlib\pyplot.py", line 722, in savefig
res = fig.savefig(*args, **kwargs)
File "C:\Users\Harry\ANACON~1\lib\site-packages\matplotlib\figure.py", line 2180, in savefig
self.canvas.print_figure(fname, **kwargs)
File "C:\Users\Harry\ANACON~1\lib\site-packages\matplotlib\backends\backend_qt5agg.py", line 88, in print_figure
super().print_figure(*args, **kwargs)
File "C:\Users\Harry\ANACON~1\lib\site-packages\matplotlib\backend_bases.py", line 2082, in print_figure
**kwargs)
File "C:\Users\Harry\ANACON~1\lib\site-packages\matplotlib\backends\backend_pdf.py", line 2503, in print_pdf
self.figure.draw(renderer)
File "C:\Users\Harry\ANACON~1\lib\site-packages\matplotlib\artist.py", line 38, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "C:\Users\Harry\ANACON~1\lib\site-packages\matplotlib\figure.py"
Calls: <Anonymous> ... py_capture_output -> force -> <Anonymous> -> py_call_impl
Execution halted
Run Code Online (Sandbox Code Playgroud)
以下是.Rmd在Rstudio 1.2.5001上运行的文件(应该在Conda3上使用Python 3.7,但我不确定如何在Windows上挖掘细节...)。
---
output: pdf_document
---
```{r}
library(reticulate)
```
```{python, echo=FALSE, include=FALSE}
import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = r'C:\Users\Harry\Anaconda3\Library\plugins\platforms'
```
```{python, echo=FALSE, include=FALSE}
import matplotlib as mpl
import matplotlib.pyplot as plt
# Setting some default plotting features to give nicer plots. This can be commented out for beginners.
rc_fonts = {
"text.usetex": True,
'text.latex.preview': True, # Gives correct legend alignment.
'mathtext.default': 'regular',
'figure.figsize': (6, 4),
"font.family": "serif",
"font.serif": "computer modern roman",
}
mpl.rcParams.update(rc_fonts)
```
```{python}
plt.plot([0, 2, 1, 4])
plt.title(r'Some Latex with symbol \$')
plt.show()
```
Run Code Online (Sandbox Code Playgroud)
小智 -3
只需删除反斜杠即可!该字符串已受到单引号格式的保护。
plt.title(r'Some Latex with symbol $')
Run Code Online (Sandbox Code Playgroud)