Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Rmarkdown是否允许编织matplotlib图?如果是,你能帮我排除故障吗?_Python_Anaconda_Rstudio_R Markdown_Knitr - Fatal编程技术网

Python Rmarkdown是否允许编织matplotlib图?如果是,你能帮我排除故障吗?

Python Rmarkdown是否允许编织matplotlib图?如果是,你能帮我排除故障吗?,python,anaconda,rstudio,r-markdown,knitr,Python,Anaconda,Rstudio,R Markdown,Knitr,编辑找到解决方案 我一直在做一个Rmarkdown笔记本,记录我对python的学习。在RStudio中,我能够将包含python代码的文档编织成HTML,没有问题,直到我开始使用matplotlib绘制数据。奇怪的是,绘图是在代码块中正确生成的。然而,在编织之后,它每次都以80%的速度吐出一个错误 以下是我的示例代码: --- title: "Python Plot" output: html_document --- ```{r setup, include=FALSE} library(

编辑找到解决方案

我一直在做一个Rmarkdown笔记本,记录我对python的学习。在RStudio中,我能够将包含python代码的文档编织成HTML,没有问题,直到我开始使用matplotlib绘制数据。奇怪的是,绘图是在代码块中正确生成的。然而,在编织之后,它每次都以80%的速度吐出一个错误

以下是我的示例代码:

---
title: "Python Plot"
output: html_document
---

```{r setup, include=FALSE}
library(knitr)
knitr::opts_chunk$set(echo = TRUE)
library(reticulate) #Allows for Python to be run in chunks
```


```{python, eval=F}
import numpy as np
trees = np.array(r.trees) #Imported an internal R dataset. It got rid of headers and first row. Don't know how to deal with that right now.
type(trees)
np.shape(trees)
print(trees[1:6,:])

import matplotlib.pyplot as plt
plt.plot(trees[:,0], trees[:,1])
plt.show()
plt.clf() #Reset plot surface
```
同样,当在块中处理时,这个图显示得很好,但没有编织。错误消息说

"This application failed to start because it could not find or load the Qt platform plugin "windows" in ",

Reinstalling the application may fix this problem."
我已经卸载并重新安装了Rstudio和Python,并继续得到相同的结果。我觉得奇怪的是,它可以在块中工作,但不能与HTML结合。我所有其他的python代码都很好

我有

python 3.7.3(默认值,2019年3月27日,17:13:21)[MSC v.1915 64位(AMD64)]

Rstudio版本1.2.1335


我读过其他的解决方案。我相信libEGL.dll与所有其他QT5*.dll位于同一位置。

在导入库中,您必须安装PyQT5并将其导入Python环境。例如,我的第一个块如下所示,
#基本库的第一行是
import PyQt5

---
title: "Cancellations TS"
author: "Bryan Butler"
date: "7/1/2019"
output:
    html_document:
    toc: false
    toc_depth: 1
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, warning = FALSE, cache.lazy = FALSE)
```

# <strong>Time Series of Auto Policies</strong> {.tabset .tabset-fade .tabset-pills}


<style>
  .main-container {
    max-width: 1200px !important;
    margin-left: auto;
    margin-right: auto;
  }
</style>

{r, loadPython}
library(reticulate)
use_condaenv('timeseries')


## Load Python
{python importLibaries}

# Base libraries
import PyQt5
import pandas as pd
from pandas import Series, DataFrame
from pandas.plotting import lag_plot


import numpy as np
import pyodbc
---
标题:“取消预订”
作者:“布莱恩·巴特勒”
日期:“2019年7月1日”
输出:
html_文件:
toc:错误
toc_深度:1
---
```{r设置,include=FALSE}
knitr::opts_chunk$set(echo=TRUE,warning=FALSE,cache.lazy=FALSE)
```
#自动策略的时间序列{.tabset.tabset fade.tabset pills}
.主货柜{
最大宽度:1200px!重要;
左边距:自动;
右边距:自动;
}
{r,loadPython}
图书馆(网状)
使用_condaenv('timeseries'))
##加载Python
{python导入库}
#基本库
导入PyQt5
作为pd进口熊猫
从熊猫导入系列,数据帧
从pandas.plotting导入滞后图
将numpy作为np导入
导入pyodbc

经过一些修改,我可以运行您的代码。我把这些数据块分开进行错误检查。您需要
将numpy导入为np
,我添加了其他内容。这是我要使用的代码。此外,我使用conda虚拟环境,因此Python环境是精确的。这就是成功的原因:

---
title: "test"
author: "Bryan Butler"
date: "7/2/2019"
output: html_document
---

```{r setup, include=FALSE}
library(knitr)
knitr::opts_chunk$set(echo = TRUE)
library(reticulate) #Allows for Python to be run in chunks
use_condaenv('timeseries')
```

```{python import}
import PyQt5
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import matplotlib.pyplot as plt
```

```{python, test}
trees = np.array(r.trees) #Imported an internal R dataset. It got rid of headers and first row. Don't know how to deal with that right now.
type(trees)
np.shape(trees)
print(trees[1:6,:])
```

```{python plot}
plt.plot(trees[:,0], trees[:,1])
plt.show()
plt.clf() #Reset plot surface
```

我在这里找到了凯文·阿瑟诺的答案

我不会称之为重复,因为问题不同,但解决方案对这两个问题都有效

需要添加以下代码:

import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = '/path/to/Anaconda3/Library/plugins/platforms'
这是我更新的工作代码。它类似于最初的问题,并使用Bryan建议的python导入块进行了更新

---
title: "Python Plot"
output: html_document
---

```{r setup, include=FALSE}
library(knitr)
knitr::opts_chunk$set(echo = TRUE)
library(reticulate) #Allows for Python to be run in chunks
```

```{python import}
import os
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = '/path/to/Anaconda3/Library/plugins/platforms'
import numpy as np
import matplotlib.pyplot as plt


```{python, eval=TRUE}

trees = np.array(r.trees) #Imported an internal R dataset. It got rid of headers and first row. Don't know how to deal with that right now.
type(trees)
np.shape(trees)
print(trees[1:6,:])


plt.plot(trees[:,0], trees[:,1])
plt.show()
plt.clf() #Reset plot surface
```

尝试用谷歌搜索该错误消息:该应用程序无法启动,因为它无法找到或加载Qt平台插件“windows”。各种点击可能会有用。谢谢,我做了,但有些没有申请,还有一些似乎远远超过我的水平。我只是不明白为什么它能在环境中工作。可能是@Ken的复制品,也可能是复制品。我只是花了一个小时或更多的时间阅读和尝试做事,但我不得不承认我的无能。我不明白。我不知道它是否重复。我不这么认为,因为我相信所有合适的.dll都在正确的位置。我不知道为什么它会毫无错误地编写其他python代码。我不知道为什么它在chunk中绘制pythod代码。它不会用python绘图编写任何代码。我很欣赏链接,但我想我还是放弃吧。布莱恩,我试过了,但还是没能把情节组织起来。在您的建议之前,我无法导入PyQt5。我现在可以了。还是不走运。请您复制我上面的原始代码,看看是否可以将文档编织成html?感谢Bryan的努力。我还是不能让它工作。我能够在别人的机器上测试,但仍然没有运气。然后我找到了答案。见下文。