Qt平台插件问题Rstudio

时间:2018-04-29 10:56:40

标签: python r qt rstudio reticulate

我正试图通过RStudio做一个seaborn热图。

我在R。

中使用reticulate

以下是我的代码:

library(reticulate)
use_condaenv("python36", conda = "auto", required = FALSE)
os <- import("os")
os$listdir(".")
py_available()


sns <- import('seaborn')
plt <- import('matplotlib.pyplot')
pd <- import('pandas')


dat <- AirPassengers
# convert time series to data frame
dat <- data.frame(matrix(dat, ncol=frequency(dat), dimnames=dimnames(.preformat.ts(dat)) ))
dat
sns$heatmap(r_to_py(dat), fmt = "g", cmap = "viridis")
plt$show()

但是,我收到以下错误,当我的R会话到达seaborn热图行时中止。我该怎么做才能解决这个错误?

Qt error

4 个答案:

答案 0 :(得分:4)

这似乎是一个重复的问题。我使用RStudio-1.2.679和R-3.4.4来编写和编辑Python代码。我遇到了完全相同的问题,我尝试了很多解决方案,但似乎没有任何效果。最后我找到了解决方案here - 我完全不相信它。这是您的Python代码(扩展名为.py的文件)的顶部,您导入库包括:

import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = 'C:/Users/myusername/AppData/Local/Continuum/Anaconda3/Library/plugins/platforms'

请注意,我的电脑中的路径是这样的,你的电影可能会有所不同。

关注this示例:

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = 'C:/Users/myusername/AppData/Local/Continuum/Anaconda3/Library/plugins/platforms'

t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)

fig, ax = plt.subplots()
ax.plot(t, s)

ax.set(xlabel='time (s)', ylabel='voltage (mV)',
       title='About as simple as it gets, folks')
ax.grid()

plt.show()

这显示了&#34; Plots&#34; RStudio中的面板。祝福!

答案 1 :(得分:2)

我在RStudio每日内部版本1.2.114和Anaconda Python 3.7环境中遇到了相同的问题,其中安装了PyTorch和matplotlib

我按照@Sheperd的指示进行了以下更改,指向您安装了matplotlib的环境;就我而言,pytorch37

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = 'C:/Users/user_name/Anaconda3/envs/pytorch37/Library/plugins/platforms'

t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)

fig, ax = plt.subplots()
ax.plot(t, s)

ax.set(xlabel='time (s)', ylabel='voltage (mV)',
       title='About as simple as it gets, folks')
ax.grid()

plt.show()

现在,找到了PyQt,并且 RStudio 不再崩溃。

答案 2 :(得分:1)

这是一个为Anaconda用户直接在R中运行的脚本:

line(X,Y):-
    read(Y),
    print(X,Y).
    
print(0,_).
print(X,Y) :-
    X>0,
    write(Y),
    X2 is X - 1,
    print(X2,Y).    

享受!!!

答案 3 :(得分:0)

我不是在使用Anaconda,而是在mini-conda上为R-studio使用网状结构

所以我用

import os

os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = 'C:\Users\<user-name>\AppData\Local\r-miniconda\envs\r-reticulate\Library\plugins\platforms'`

成功了,谢谢@Shepherd和@ F0nzie