Печать изображения в r-markdown с использованием кода matplotlib и python - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь запустить код Python, используя файл R-Markdown (RMarkdown to pdf).

Чего я достиг до сих пор - 1- Я могу настроить свой движок Python, используя knitr и сетевую библиотеку2- Я могу выполнить свои коды Python.

То, что я попробовал - 1- Я попробовал все методы, которые обсуждаются на этом форуме, но ничего не получается.2. Я также попытался сохранить изображение (, как предлагает один из постов ), но это также не работает.Моя проблема -

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

```

Пожалуйста, помогите мне решить эту проблему, так как я хочу скомпилировать свои коды Python, используя файл разметки R.

спасибо

1 Ответ

0 голосов
/ 01 июля 2019

Так что с R Markdown вы должны делать некоторые вещи немного по-другому.Далее у меня есть фрейм данных с двумя рядами, созданными путем их объединения.Исходный код для черчения в блокноте Jupyter выглядит следующим образом и только что распечатал серию.

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

enter image description here

Однако он не работает сс R уценкой.Затем при построении графиков вы всегда должны назначать их, и с помощью приведенного ниже кода вы получаете тот же график.

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

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

Это распространено и в других функциях построения графиков, таких как plot_acf().

...