在R Markdown文档中使用Python代码绘制matplotlib图形

bee*_*lej 14 matplotlib rstudio knitr r-markdown

是否可以使用Python matplotlib代码在RStudio中绘制图形?

例如,在Python matplotlib代码下面:

import numpy as np
import matplotlib.pyplot as plt

n = 256
X = np.linspace(-np.pi,np.pi,n,endpoint=True)
Y = np.sin(2*X)

plt.plot (X, Y+1, color='blue', alpha=1.00)
plt.plot (X, Y-1, color='blue', alpha=1.00)
plt.show()
Run Code Online (Sandbox Code Playgroud)

输出图将是:

在此输入图像描述

然后我需要写一个R Markdown来包含这些代码并在编织降价后自动生成图形.

luc*_*928 11

一种可能的解决方案是将绘图保存为图像,然后将文件加载到markdown.

### Call python code sample
```{r,engine='python'}
import numpy as np
import matplotlib.pyplot as plt

n = 256
X = np.linspace(-np.pi,np.pi,n,endpoint=True)
Y = np.sin(2*X)

fig, ax = plt.subplots( nrows=1, ncols=1 )
ax.plot (X, Y+1, color='blue', alpha=1.00)
ax.plot (X, Y-1, color='blue', alpha=1.00)
#plt.show()
fig.savefig('foo.png', bbox_inches='tight')
print "finished"
```
Output image:
![output](foo.png)

#### The End
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述


jti*_*ing 11

  1. 首先是install.packages('devtools'),获取install_github函数
  2. install_github("rstudio/reticulate")安装网格的开发版本
  3. 在r markdown doc中,使用下面的代码启用该功能.

    ```{r setup, include=FALSE}
    library(knitr)
    library(reticulate)
    knitr::knit_engines$set(python = reticulate::eng_python)
    ```

尝试一下,你会得到你想要的东西,不需要保存任何图像.

Imgur

  • 代码在python块中?还是块? (3认同)