【问题标题】:Qt platform plugin issue RstudioQt 平台插件问题 Rstudio
【发布时间】:2018-10-09 16:18:47
【问题描述】:

我正在尝试通过 RStudio 绘制海底热图。

我在 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 热图线时中止。我应该怎么做才能修复这个错误?

【问题讨论】:

    标签: python r qt rstudio reticulate


    【解决方案1】:

    这是一个直接在 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()
    

    享受!!!

    【讨论】:

      【解决方案2】:

      我没有使用 Anaconda,而是使用 miniconda 和 R-studio 的 reticulate

      所以我用了

      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

      【讨论】:

      • 请不要重复已经给出的答案,只需投票(一旦你有足够的声誉)
      【解决方案3】:

      我在安装了 PyTorch 和 matplotlib 的 RStudio 每日构建 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 不再崩溃。

      【讨论】:

      • 我也在 Windows 上工作,这解决了这个问题,所以评论和支持,因为这是我找到的最佳答案。
      【解决方案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'
      

      请注意,路径在我的 PC 中是这样的,在您的 PC 中可能看起来不同。

      以下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()
      

      这会在 RStudio 的“绘图”面板中显示绘图。祝你好运!

      【讨论】:

        猜你喜欢
        • 2015-08-25
        • 2020-10-05
        • 1970-01-01
        • 2020-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多