繁体   English   中英

使用 R-reticulate package 时,如何防止 RMarkdown 切断我的 Python 图?

[英]How to prevent RMarkdown from cutting off my Python graphs when using the R-reticulate package?

我在使用 R-Reticulate package 块中的 python 块中用 matplotlib 绘制的 Rmarkdown 文件中有一些简单的图。 但是由于某种原因,无论我如何在 python 中指定 figsize,图表总是会被压扁。 这似乎是 RMarkdown 的一个问题,因为我在 a.py 文件中绘制了相同的图,并且它们表现得很好。 有谁知道如何防止从 RMarkdown 调整大小?

这是代码:

```{python, message=FALSE, results='hide', fig.keep='all'}
fig = plt.figure(figsize=(10,8))
plt.xlabel('Log Dispersion (km/s)', fontsize='x-large', fontweight='bold')
plt.ylabel(r'Log Black Hole Mass ($M_\odot$)', fontsize='x-large', fontweight='bold')
plt.scatter(data.SIG, data.MBH, label='data')
plt.show()
```

这是 RMarkdown 中的 output:

在此处输入图像描述

如您所见,它被切断了。 同时,a.py 文件中的相同代码完全没问题。 我尝试更改 fig = plt.figure(figsize=(10,8)) 中的图形大小,但它完全没有任何作用。

我仍然无法复制您遇到的问题。 以下是将 Resize Sensor 添加到页面的块。

```{r spicy, engine="js", include=FALSE, results="asis"}

scrp = ["https://cdnjs.cloudflare.com/ajax/libs/css-element-queries/1.2.3/ElementQueries.min.js",
        "https://cdnjs.cloudflare.com/ajax/libs/css-element-queries/1.2.3/ResizeSensor.js"];

setTimeout(function(){ // this function adds the URLs to the HTML <head>
  for(i=0; i < scrp.length; i++) {
    script = document.createElement('script');
    script.src = scrp[i];
    script.type = "text/javascript";
    document.head.appendChild(script);
  }
  ElementQueries.listen(); // just listen!!
}, 200); //wait a sec!

```

由于这是一个笔记本,您可能需要将echo=F添加到块选项中。

如果这不起作用,请查看您设置的任何其他全局设置。

  • 例如,您的 YAML 中是否建立了任何配置?
  • 或者只是谁,何时,以及 output?
  • 您是否设置了默认图形尺寸?
  • 有些情节可以,有些则不行吗? 如果有,有什么不同?
  • 您是否指定了列或行?
  • 你有指定 styles 吗?

另一件值得一提的事情——基础 R 绘图和 ggplot 呈现为图像,而来自 plotly 或 highchart 等包的图形呈现为 HTML。 Matplotlib 呈现为图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM