2016-04-05 74 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