Qt平台插件问题 Rstudio

4

我正在尝试通过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()

然而,当程序运行到seaborn热力图代码时,我收到了以下错误信息并且R会话被中止。我应该怎么做来解决这个错误?

Qt error

4个回答

5

我在使用RStudio daily build 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不再崩溃。

我也在Windows上工作,这解决了我的问题,因此我评论并点赞,因为这是我找到的最佳答案。 - KevOMalley743

4

这似乎是一个重复的问题。我正在使用RStudio-1.2.679和R-3.4.4编写和编辑Python代码,遇到了完全相同的问题,我尝试了许多解决方案,但什么都不起作用。最终我在这里找到了解决方法 -我对此一无所知。解决方法是,在您的Python代码(扩展名为.py的文件)的顶部导入库时加上以下内容:

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

请注意,这是我的电脑上路径的样子,你的可能会不同。
根据这个示例:
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()

这显示了在RStudio的“Plots”面板中的图形。祝一切顺利!

1

以下是适用于Anaconda用户在R中直接运行的脚本:

library(reticulate)

use_condaenv(condaenv = "your conda env", required = T)

py_run_string('import os')
py_run_string("os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = '/path/to/Anaconda3/Library/plugins/platforms'")

np = import("numpy",delay_load = T)
plt = import("matplotlib.pyplot",delay_load = T)

t = np$arange(0.01, 10.0, 0.01)

data1 = np$exp(t)
data2 = np$sin(2 * np$pi * t)

#These last lines must be run together:

fig = plt$figure(figsize=c(14,8))
plt$plot(1:10,1:10)
plt$show()

享受!!!


0

我没有使用Anaconda,而是使用miniconda和reticulate来配合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


请不要重复给出已经给出的答案,只需投票支持它(一旦您有足够的声望)。 - xiawi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接