簡體   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