使用matplotlib和python代码在r-markdown中打印图像

时间:2019-01-23 09:34:28

标签: python r r-markdown

我正在尝试使用R-Markdown文件(RMarkdown到pdf)运行python代码。

我到目前为止所取得的成就- 1-我可以使用knitr和网状库配置python引擎 2-我能够执行我的python代码。

我尝试过的- 1-我尝试了本论坛中讨论的所有方法,但没有任何结果。 2-我也尝试保存图像(as one of the posts here suggests),但是那也不起作用。 我的问题-

1-当我尝试使用matlplotlib和命令plt.imshow()和plt.show()绘制图形时,它没有在输出中打印图像。而是在单独的窗口中显示图像。您可以在所附的图像中看到我的结果。

Result_of_my_code

这是我的代码

```{r setup, include=FALSE}

library(knitr)
library(reticulate)
knitr::knit_engines$set(python = reticulate::eng_python)
```

```{python}


import numpy as np
import os
import torch
import torchvision.datasets as dsets
import matplotlib.pyplot as plt
print(os.getcwd())
os.chdir('D:\\1st year\\Python codes\\CIFR Analysis\\self contained analysis')
print(os.getcwd())
train_mnist = dsets.MNIST("../data", train=True)
test_mnist = dsets.MNIST("../data", train= False)
print(len(train_mnist))

#print(train_mnist[0][0])
plt.imshow(train_mnist[0][0], cmap="gray")
#plt.savefig("trainzero.png")

plt.show()

```

请帮我解决此问题,因为我想使用R markdown文件编译python代码。

谢谢

1 个答案:

答案 0 :(得分:0)

因此,使用R Markdown,您必须做一些不同的事情。在下面,我有一个通过串联两个序列创建的数据框。 Jupyter Notebook中的原始绘图代码如下,并刚刚打印出该系列。

# make a plot of model fit
train.plot(figsize=(16,8), legend=True)
backtest.plot(legend=True);

enter image description here

但是,它不适用于R Markdown。然后,使用绘图,您总是必须分配它们,并使用下面的代码,您将获得相同的绘图。

dfreg = pd.concat([reg, backtest], axis = 1)

ax = dfreg.plot(figsize=(16,8), legend = True)
ax1 = predictions.plot(legend=True)
plt.show()

这与其他绘图功能(例如plot_acf())也很常见。