我该如何在RMarkdown中渲染Python图表?

3

我实在想不出来如何在使用Python的RMarkdown中呈现图表。这些图表在Python编辑器中可以正常显示,但是当我切换到RStudio尝试生成PDF / HTML报告时,就无法呈现。我在互联网上找了很多答案,但是没有人能解决我的问题。下面是我收到的错误信息:

enter image description here

下面是我编写的一些数据,以说明我试图实现的内容。一旦应用程序运行到seaborn代码行,就会在RStudio中产生附带的错误消息。

knitr::opts_chunk$set(echo = TRUE)
library(reticulate)

导入所需包

import pandas as pd
import numpy as np
from scipy.stats import uniform  # for training-and-test split
import statsmodels.api as sm  # statistical models (including regression)
import statsmodels.formula.api as smf  # R-like model specification
import matplotlib.pyplot as plt  # 2D plotting
import seaborn as sns

x = np.random.normal(0, 1, 20)
y = np.random.normal(0, 2, 20)
sns.scatterplot(x, y)

没有可重现的代码示例,很难提供帮助。您能否展示一下您的.Rmd文件? - Martin C. Arnold
@M.A. 我添加了 .Rmd 的部分代码。基本上导致错误信息的那一行是绘图,不一定是 seaborn,任何其他绘图调用都会产生相同的错误信息。 - user3813620
抱歉,但这不是我所说的可重现性。Python 代码没问题。看一下 Markdown 文件可能会有帮助,但我认为这个问题是由于缺少 DLL 引起的。 - Martin C. Arnold
@M. A. 就 Rmd 文件而言,前两行就是全部内容。其余部分都是 Python 代码。如果我删除绘图函数,代码就可以正常工作。另外,你可能是对的,其他论坛上的所有信息都提到了“.dll”,但没有具体说明它们的名称、下载位置或在 R 或 Python 安装中应该放置在哪里。 - user3813620
1个回答

1
我发现答案在这里
我只需要在下面的R设置块中library(reticulate)调用之后添加这两行即可。
matplotlib <- import("matplotlib")
matplotlib$use("Agg", force = TRUE)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接