2016-04-05 30 views
7

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

例如下面的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() 

输出图形将是:

enter image description here

然后我需要编写A R降价包括这些代码,然后按后自动生成图形的按钮。

+0

R可以做到这一点容易!为什么需要使用python! – lucky1928

+0

@ lucky1928这只是一个例子,python可以做许多其他不适合R的事情。:-) – beetlej

回答

5

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

### 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 

输出:

enter image description here

+0

我今天试着在knitr中使用钩子来使这个解决方案更加自动化,但问题是钩子是用R编写的,所以似乎没有任何访问Python代码的权限。也许有一种方法可以在最后写出一些python代码。 –

4
  1. install.packages( 'devtools')第一,获得install_github功能
  2. install_github( “rstudio /网纹”)安装网状的开发版本
  3. 在r markdown文档中,使用以下代码启用该功能。

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

试试吧,你会得到你想要的东西,不需要保存任何图像。

Imgur