Qt平台插件问题Rstudio
Qt platform plugin issue Rstudio
我正在尝试通过 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 热图线时被中止。我应该怎么做才能修复此错误?
这似乎是一个重复的问题。我使用 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'
请注意,这是路径在我的 PC 中的样子,它在您的电脑中可能看起来不同。
以下 示例:
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" 面板中的绘图。祝福!
我在安装 PyTorch 和 matplotlib
的 RStudio daily build 1.2.114 和 Anaconda Python 3.7 环境中遇到了同样的问题。
我按照@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 不再崩溃。
我没有使用 Anaconda,而是使用 miniconda 和 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
这是一个直接在 R 中 运行 的脚本,供 Anaconda 用户使用:
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()
尽情享受!!!
我正在尝试通过 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 热图线时被中止。我应该怎么做才能修复此错误?
这似乎是一个重复的问题。我使用 RStudio-1.2.679 和 R-3.4.4 编写和编辑 Python 代码。我遇到了完全相同的问题,我尝试了很多解决方案,但似乎没有任何效果。最后我找到了解决方案
import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = 'C:/Users/myusername/AppData/Local/Continuum/Anaconda3/Library/plugins/platforms'
请注意,这是路径在我的 PC 中的样子,它在您的电脑中可能看起来不同。
以下
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" 面板中的绘图。祝福!
我在安装 PyTorch 和 matplotlib
的 RStudio daily build 1.2.114 和 Anaconda Python 3.7 环境中遇到了同样的问题。
我按照@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 不再崩溃。
我没有使用 Anaconda,而是使用 miniconda 和 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
这是一个直接在 R 中 运行 的脚本,供 Anaconda 用户使用:
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()
尽情享受!!!