Search code examples
pythonrmatplotlibreticulate

Importing matplotlib.pyplot in Rstudio using reticulate


I am unable to import matplotlib.pyplot as plt in Rstudio.

I tried the solutions already available on SO.

Here are my attempts:

I installed reticulate package the devtools install way. devtools::install_github(rstudio/reticulate)

library(reticulate)

repl_python()

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0,10, 100) plt.plot(x, x, label = "linear") plt.legend() plt.show()

I received the following error - RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa ImportError: numpy.core.multiarray failed to import

I tried in RMarkdown as well.

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(knitr)
library(reticulate)
use_condaenv(condaenv = "python36", conda = "auto", required = FALSE)
```

```{python}
repl_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)

plt.plot (X, Y+1, color='blue', alpha=1.00)
plt.plot (X, Y-1, color='blue', alpha=1.00)
plt.show()
```

Received the following error -

RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa Traceback (most recent call last): File "C:\Users\Vidhya\AppData\Local\Temp\Rtmp6vCzV6\chunk-code-13e83c491e61.txt", line 2, in <module> import matplotlib.pyplot as plt File "C:\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 29, in <module> import matplotlib.colorbar File "C:\Anaconda3\lib\site-packages\matplotlib\colorbar.py", line 32, in <module> import matplotlib.artist as martist File "C:\Anaconda3\lib\site-packages\matplotlib\artist.py", line 15, in <module> from .transforms import (Bbox, IdentityTransform, TransformedBbox, File "C:\Anaconda3\lib\site-packages\matplotlib\transforms.py", line 39, in <module> from matplotlib._path import (affine_transform, count_bboxes_overlapping_bbox, ImportError: numpy.core.multiarray failed to import


Solution

  • I had similar issues. I did following and it solved. Before that I would like to refer you in following threads from where I got the solution...

    Qt platform plugin issue Rstudio

    PyQt5 - Failed to load platform plugin "windows". Available platforms are: windows, minimal

    Here is what you have to do [change the path according to your system]

    In R:-

    py_run_string("import os as os")
    py_run_string("os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = 'C:/Dev/Anaconda/Library/plugins/platforms'")
    np <- import("numpy", as = "np")
    plt <- import("matplotlib.pyplot", as = "plt")
    
    x <- np$linspace(0,10, 100)
    plt$plot(x, x, label = "linear")
    plt$legend()
    plt$show()
    

    In repl_python (embedded mode)

    import matplotlib.pyplot as plt
    
    import numpy as np
    
    x = np.linspace(0,10, 100)
    plt.plot(x, x, label = "linear")
    plt.legend()
    plt.show()
    

    Hope this helps... cheers